我需要压缩目录:
目录-> directory.zip。
应该可以轻松地在Windows上打开该文件,但是创建该文件的速度应该尽可能快->就像tar
然后可以删除原始目录。最好的选择是什么? “压缩”该目录的唯一原因是能够通过http将其下载为一个文件。
答案 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))