我尝试用python shutil压缩一个目录,如下所示:
shutil.make_archive("~/Desktop/zipfile", 'zip', "~/Documents/foldertozip")
但结果只是将文件压缩到foldertozip中。比如说
^{pr2}$另一方面,如果我从windows文件资源管理器或mac finder压缩它,我会得到以下结果:
foldertozip
-- file1
-- file2
zipfile.zip
-- foldertozip
-- file1
-- file2
我如何使用shutil来做同样的事情,我可以从文件资源管理器和包括基本目录?我知道我可以将“foldertozip”复制到同名文件夹中,然后压缩该文件夹,但如果可能的话,我更希望使用更干净的解决方案。在
如果您同时传递},则{}将执行您想要的操作。见the docs。在
root_dir
和{根据make_存档文件:
创建一个归档文件(例如zip或tar)并返回其名称。在
base_name是要创建的文件的名称,包括路径,减去任何特定于格式的扩展名。format是存档格式:“zip”、“tar”、“bztar”或“gztar”之一。在
root_dir是一个将作为存档的根目录的目录;也就是说,我们通常在创建归档之前先将其放入根目录。在
base_dir是我们开始归档的目录;也就是说,base_dir是存档中所有文件和目录的通用前缀。在
如果我正确地理解了这个问题,那么您需要使basedir等于“foldertozip”,根目录等于“foldertozip”的父目录。在
假设foldertozip在“Documents”下
所以这样的方法应该有效:
^{pr2}$让我们知道,如果这是你所期待的工作!在
相关问题 更多 >
编程相关推荐