一尘不染

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

python

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


阅读 435

收藏
2020-02-18

共2个答案

一尘不染

正如其他人指出的那样,你应该使用zipfile。该文档告诉你可用的功能,但并未真正说明如何使用它们压缩整个目录。我认为用一些示例代码来解释是最简单的:

#!/usr/bin/env python
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))

if __name__ == '__main__':
    zipf = zipfile.ZipFile('Python.zip', 'w', zipfile.ZIP_DEFLATED)
    zipdir('tmp/', zipf)
    zipf.close()
2020-02-18
一尘不染

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

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

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

2020-02-18