大きなテキストファイル(〜7 GB)があります。大きなテキストファイルを読み取るための最速の方法が存在するかどうかを探しています。プロセスを高速化するために、チャンクごとに読み取るいくつかのアプローチの使用について読んでいます。
例で effbot 提案
_# File: readline-example-3.py
file = open("sample.txt")
while 1:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
pass # do something**strong text**
_
1秒あたり96,900行のテキストを処理するため。その他 authors islice()の使用を提案
_from itertools import islice
with open(...) as f:
while True:
next_n_lines = list(islice(f, n))
if not next_n_lines:
break
# process next_n_lines
_
list(islice(f, n))
は、ファイルn
の次のf
行のリストを返します。ループ内でこれを使用すると、n
行のチャンクでファイルが提供されます
with open(<FILE>) as FileObj:
for lines in FileObj:
print lines # or do some other thing with the line...
メモリに一度に1行を読み取り、完了したらファイルを閉じます...