現在、私は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たくさんの記憶を消費する。前述のように、それは適度なブロックサイズを使用し、それらは使用されると解放されます。プログラムそのものが大きくなっているのですか、あるいは記憶上の問題によって他の何かを意味していますか?オペレーティングシステムは書き込みをキャッシュするので、OSがデータをコミットし始めるまでは高速になります。それから物事は少し落ちるかもしれません。 – tdelaney
興味深い、OKこれは赤いニシンかもしれません –