根据下面的代码,我遇到了使用python 3 shutil.make_archive函数压缩目录的问题。 .testdir将被压缩,但它被压缩在/ home / pi中,而不是/ home / pi / Backups。
zip_loc = '/home/pi/.testdir'
zip_dest = '/home/pi/Backups/'
shutil.make_archive(zip_loc, 'zip', zip_dest)
有人能解释我做错了吗?
答案 0 :(得分:3)
阅读文档here我想出了:
zip_loc = '/home/pi/.testdir'
zip_dest = '/home/pi/Backups/'
shutil.make_archive(base_dir=zip_loc, root_dir=zip_loc, format='zip', base_name=zip_dest)
来自文档:
base_name 是要创建的文件的名称,包括路径,减去任何特定于格式的扩展名。
root_dir 是一个目录,它将成为存档的根目录;例如,我们通常在创建存档之前进入 root_dir 。
base_dir 是我们开始存档的目录;即 base_dir 将是档案中所有文件和目录的公共前缀。
root_dir 和 base_dir 都默认为当前目录。
答案 1 :(得分:0)
在写入存档之前,请移至好目录:
old_path = os.getcwd()
os.chdir(path)
->写档案文件
写完存档后,移回旧目录:
os.chdir(old_path)