2013-06-20 29 views
5

私はzipfile.ZipFile().read()というzipファイルを読んでいるスレッドがあります。ここではメモリエラーが発生しています。Pythonでzipファイルを読み取っているときにメモリエラーが発生しました

私は、read()がファイル全体をメモリにロードすることに気付いています。解凍後のファイルサイズは100MB以上です。私もzipfile.ZipFile().open().readlines()で試しましたが、時間がかかりすぎます。

メモリエラーを起こすことなく速度でファイルを読み取る方法はありますか?

+0

() 'と' sizehint'引数を付けないと、ファイル全体がメモリに読み込まれ、行のリストが構築されます。したがって、メモリ要件を減らすことはできませんが、むしろそれらをわずかに増加させます。綾の答えを見てください。 – msw

答えて

5

`readlinesあなたはイテレータとしてZipFile.open()によって返されたファイルのようなオブジェクトを扱うことができ、あなたはzip形式のテキストファイルを読み取るしようとしていると仮定し、それを処理ライン・バイ・ライン...

from zipfile import ZipFile 

zip = ZipFile('myzip.zip') 
stream = zip.open('myfile.txt') 
for line in stream: 
    do_something_with(line) 
関連する問題