使用python有效压缩文件

时间:2018-08-22 13:17:34

标签: python

我需要压缩目录:

目录-> directory.zip。

应该可以轻松地在Windows上打开该文件,但是创建该文件的速度应该尽可能快->就像tar

然后可以删除原始目录。最好的选择是什么? “压缩”该目录的唯一原因是能够通过http将其下载为一个文件。

2 个答案:

答案 0 :(得分:1)

您可以使用内置的zipfile模块。特别是ZIP_STORED禁用压缩。

为了获得更高的性能,您还可以将生成的zip输出直接发送到HTTP响应中,而无需先在磁盘上创建文件或在内存中创建缓冲区。

答案 1 :(得分:1)

对于压缩目录,我一直使用zipfile模块,并像这样使用它;

import zipfile

def zip(src, dst):
    zf = zipfile.ZipFile("%s.zip" % (dst), "w", zipfile.ZIP_DEFLATED)
    abs_src = os.path.abspath(src)
    for dirname, subdirs, files in os.walk(src):
        for filename in files:
            absname = os.path.abspath(os.path.join(dirname, filename))
            arcname = absname[len(abs_src) + 1:]
            print('zipping %s as %s' % (os.path.join(dirname, filename),
                                        arcname))
            zf.write(absname, arcname)
    zf.close()

然后打电话给这个

zip(str(source), str(destination))