私は20Gbファイルを解析して特定の条件を満たす行を別のファイルに出力しますが、時にはpythonは2行を同時に読み込み、それら。pythonで大きな(20GB)テキストファイルを解析する - 2行を1として読み込む
inputFileHandle = open(inputFileName, 'r')
row = 0
for line in inputFileHandle:
row = row + 1
if line_meets_condition:
outputFileHandle.write(line)
else:
lstIgnoredRows.append(row)
私はソースファイルの行末をチェックしており、改行(ascii char 10)としてチェックアウトしています。問題の行を引き出し、分離して解析することは、期待通りに機能します。私はここでいくつかのPythonの制限を打つのですか?最初の異常のファイル内の位置は4GBマークの周りです。
拳の異常は常に同じ行数で一貫して発生しますか?また、 'lstIgnoredRows'はリストで、その大きさはどれくらい大きくなりますか?私はあなたが出力ファイルに興味のある行を保存し、無視したい行を何もしなかった場合にはどうなるのだろうかと思います。 – Levon
おそらく、この質問と同様に、遅延メソッドを使用して、一度に小さなファイルのチャンクを読むことができますか?それはショットを与えるhttp://stackoverflow.com/questions/519633/lazy-method-for-reading-big-file-in-python – prrao
毎回同じ行数で発生します。 lstIgnoredRowsは数千のアイテムに拡大できます。 – James