背景
我正在尝试像这样使用 python shutil 压缩目录:
shutil.make_archive("~/Desktop/zipfile", 'zip', "~/Documents/foldertozip")
但结果只压缩里面“foldertozip”的文件。例如,
foldertozip
-- file1
-- file2
zipfile.zip
-- file1
-- file2
另一方面,如果我从 windows 文件资源管理器或 mac finder 中压缩它,我会得到以下内容:
foldertozip
-- file1
-- file2
zipfile.zip
-- foldertozip
-- file1
-- file2
问题
我如何使用 shutil 执行我可以从文件资源管理器执行的相同操作并包含基本目录?我知道我可以将“foldertozip”复制到一个具有相同名称的文件夹,然后压缩该文件夹,但如果可能的话,我更喜欢更简洁的解决方案。
请您参考如下方法:
如果您同时传递 root_dir 和 base_dir,
make_archive 将执行您想要的操作。参见 the docs .
import shutil
shutil.make_archive('~/Desktop/zipfile', 'zip', '~/Documents/', 'foldertozip')
