【发布时间】:2017-10-08 10:53:32
【问题描述】:
我有一组文件夹(名为 *.pages),我想将它们压缩到它们各自的 .zip 文件中,例如“example1.pages”到“example1.pages.zip”,“example2.pages”到“example2.pages.zip”等。我还想包含各个.pages文件夹的内容。
目前,该脚本将所有 .pages 文件压缩到具有嵌套目录的单个文件中。
我不确定如何继续,并且我相信我在执行 zipfile 函数时遗漏了一些东西。
任何帮助将不胜感激!
import os
import zipfile
start_path = "MY/DIRECTORY/HERE"
def zipdir(ziph):
dir_count = 0
file_count = 0
for (path,dirs,files) in os.walk(start_path):
print('Directory: {:s}'.format(path))
dir_count += 1
for file in dirs:
if file.endswith(".pages"):
print('\nAttempting to zip: \'{}\''.format(file))
ziph.write(os.path.join(path, file))
print('Done')
file_count += 1
print('\nProcessed {} files in {} directories.'.format(file_count,dir_count))
if __name__ == '__main__':
zipf = zipfile.ZipFile("NAME/OF/INDIVIDUAL/ZIP/FILE.zip", 'w', zipfile.ZIP_DEFLATED)
zipdir(zipf)
zipf.close()
【问题讨论】:
-
如果你想对文件进行操作,你为什么要遍历 dirs?
-
如果你想要多个 zip 文件...然后在循环中创建它们。
-
@pvg 我想对名为“.pages”的文件夹进行操作
标签: python recursion directory zipfile