基本上,我需要将文件夹中某种类型的所有文件复制到最高级别的 ZipFile
中(因此不在文件夹中)。
例如,我有一个文件夹“A Folder”,该文件夹中有大量 .png 文件。我想将所有这些文件复制到现有的 ZipFile
中。目前我也只能获取要复制的文件夹,所以我最终得到的是 'ZipFile\A Folder\lots of .pngs'
而不是 'ZipFile\lots of .pngs'
我用来移动文件和文件夹的代码是:
for root, dirs, files in os.walk('A Folder'):
for f in files:
fname = os.path.join(root, f)
myzip.write(fname)
另一个问题,您将如何从 ZipFile
中删除文件夹?
最佳答案
根据 python 文档,zipfile.write()方法支持第二个参数,即目标名称(即存档中的名称),尝试像这样使用它:
for root, dirs, files in os.walk('A Folder'):
for f in files:
fname = os.path.join(root, f)
new_path = os.path.normpath(fname.replace('A Folder', ''))
myzip.write(fname, new_path)
https://stackoverflow.com/questions/7402200/