我目前正在使用Python 2.7的ZipFile。我一直在遇到內存問題,將多個文件壓縮發送給用戶。當壓縮文件時,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中,但我不確定是這種情況。
看起來模塊一次只能讀取8 * 1024個字符到內存中https://hg.python.org/cpython/file/2.7/Lib/zipfile.py#l1179 – Sush
'ZipFile.write()'doesn不會消耗太多的記憶。如前所述,它使用適度的塊大小,並在使用時釋放它們。程序本身是否越來越大,或者你的意思是由於內存問題而導致其他問題?操作系統緩存寫入,所以在操作系統開始提交數據之前它會很快。然後事情可能會有點緩慢。 – tdelaney
有趣的是,這可能是一條紅鯡魚 –