如何创建目录的 zip 存档?

新手上路,请多包涵

如何在 Python 中创建目录结构的 zip 存档?

原文由 Martha Yi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 734
2 个回答

正如其他人指出的那样,您应该使用 zipfile 。该文档告诉您哪些功能可用,但并没有真正解释如何使用它们来压缩整个目录。我认为用一些示例代码最容易解释:

 import os
import zipfile

def zipdir(path, ziph):
    # ziph is zipfile handle
    for root, dirs, files in os.walk(path):
        for file in files:
            ziph.write(os.path.join(root, file),
                       os.path.relpath(os.path.join(root, file),
                                       os.path.join(path, '..')))

with zipfile.ZipFile('Python.zip', 'w', zipfile.ZIP_DEFLATED) as zipf:
    zipdir('tmp/', zipf)

原文由 Mark Byers 发布,翻译遵循 CC BY-SA 4.0 许可协议

最简单的方法是使用 shutil.make_archive 。它同时支持 zip 和 tar 格式。

 import shutil
shutil.make_archive(output_filename, 'zip', dir_name)

如果您需要做比压缩整个目录更复杂的事情(例如跳过某些文件),那么您需要像其他人建议的那样深入研究 zipfile 模块。

原文由 crdavis 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题