2013-02-18 13 views
17

私は大きなテキストファイル(〜7 GB)を持っています。大きなテキストファイルを読むための最速の方法が存在するかどうかを探しています。私はプロセスをスピードアップするためにチャンクごとに読んでいくつかのアプローチを使用することについて読んできました。例えばeffbot大きなテキストファイル(数GB)を読むPythonの最速の方法

毎秒テキストの96900行を処理するために

# 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** 

を示唆しています。 その他authors

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)))(isliceを使用することをお勧めは、ファイルf次のn行のリストを返します。ループ内でこれを使用して、あなたにnライン

+1

なぜあなたはチェックしません。何があなたのために最速ですか? – piokuc

+0

ここに提案をお願いします:http://stackoverflow.com/questions/14863224/efficient-reading-of-800-gb-xml-file-in-python-2-7 – BenDundee

+0

@Nix私は読んでいません行ごとに、チャンクでチャンク –

答えて

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

のチャンクでファイルメモリに一度に1行を読んで、そして終わったら、ファイルを閉じますを与えるだろう...

+2

モートンのラインが遅すぎる。 –

+5

aay、読み込みが速すぎる... –

+0

FileObjのループの結果が行ではなく1文字であるように見えます。 – 69444091

関連する問題