压缩文件时,Python 2.7的ZipFile行为

时间:2017-03-28 04:15:01

标签: python python-2.7 zip

我目前正在使用python 2.7&#zipfile。我一直在遇到内存问题,压缩多个文件发送给用户。

当我有代码时:

fp = open('myzip.zip', 'w')
archive = zipfile.ZipFile(fp, 'w', zipfile.ZIP_DEFLATED)
for filepath in filepaths:
   archive.write(filepath)
archive.close()

Python是否会在某些时候将所有这些文件加载​​到内存中?我本以期望Python将文件的内容流式传输到zip中,但我不确定是不是这样。

2 个答案:

答案 0 :(得分:0)

This question/answer(由同一位用户提供)表明它都是在内存中完成的。它们提供了一个经过修改的库EnhancedZipFile的链接,听起来它可以按照您的意愿运行,但它似乎没有对项目进行过多的活动。

如果您没有专门依赖于zip,那么this answer意味着bzip库可以处理大文件。

答案 1 :(得分:0)

Python会保存你在内存中迭代的所有文件,除了调用一个可以在操作系统上为你完成工作的可执行文件外,我无法想到绕过它。