我目前正在使用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中,但我不确定是不是这样。
答案 0 :(得分:0)
This question/answer(由同一位用户提供)表明它都是在内存中完成的。它们提供了一个经过修改的库EnhancedZipFile的链接,听起来它可以按照您的意愿运行,但它似乎没有对项目进行过多的活动。
如果您没有专门依赖于zip,那么this answer意味着bzip库可以处理大文件。
答案 1 :(得分:0)
Python会保存你在内存中迭代的所有文件,除了调用一个可以在操作系统上为你完成工作的可执行文件外,我无法想到绕过它。