web-dev-qa-db-ja.com

Python大きいテキストファイル(数GB)を読み取るための最速の方法

大きなテキストファイル(〜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行のチャンクでファイルが提供されます

27
Gianni Spear
with open(<FILE>) as FileObj:
    for lines in FileObj:
        print lines # or do some other thing with the line...

メモリに一度に1行を読み取り、完了したらファイルを閉じます...

13
Morten Larsen