如何在python中创建目录的tar文件备份

Cod*_*alk 2 python backup recursion

我正在尝试做的事情:我正在尝试对运行此python脚本的目录进行递归 .tar文件备份.

我目前拥有的:

import os
import zipfile
import datetime
import tarfile
datetime = str( datetime.datetime.now() )
def zipdir(path, zip):
    for root, dirs, files in os.walk(path):
        for file in files:
            zip.write(os.path.join(root, file))
backupdir = raw_input('Which directory should we backup to? \n')
if backupdir :
    try:
        zipf = zipfile.ZipFile('DrupalInstanceBackup'+datetime+'.zip', mode='w')
        zipdir('/Users/localuser/Downloads/backup', zipf)
    except Exception as e:
        print e
    finally:
        zipf.close()
Run Code Online (Sandbox Code Playgroud)

它目前的作用: 它进行.zip备份,但在解压缩时它不会显示任何文件.

我想做什么: 有人可以帮助我以递归方式备份目录并.tar以递归方式创建目录及其文件的存档吗?

谢谢

kal*_*rtt 6

好消息是tarfile支持递归添加成员任何工作.

with tarfile.open(archive_name + '.tar.gz', mode='w:gz') as archive:
    archive.add('/Users/localuser/Downloads/backup', recursive=True)
Run Code Online (Sandbox Code Playgroud)

recursive=True 是默认值,因此您可以省略它.

  • 如果你想放置源目录中的所有文件而不维护完整的目录结构,那么你可以传递 `arcname=''` (3认同)