0

特定の単語を含む行から非常に大きなファイルを読みたいのですが、それを行う最善の方法は何ですか?

50K行のファイルだとしましょう

43511
24622
53213
43534
57656
12121

このファイルの 43534 を含む行から読み取りを開始したいのですが、大きなファイルに対して最も効率的な方法は何ですか?

4

3 に答える 3

1

メモリを大幅に爆発させずに手動で行う方法の 1 つは、次のようなものです。

f = open('file.txt','r')
found = False
for line in f
    if line == '43534':
        found = True
    if found:
        # you now reached the line in the file and
        # therefore you can begin process it here
        # in case you need the position of the buffer
        # you do: f.tell()

お役に立てれば!

于 2013-07-12T16:38:54.667 に答える
1

探している特定のターゲット文字列を読み取ったかどうかを表すバイナリ変数を作成するだけです。文字列に到達したら、フラグを反転し、スクリプトをトリガーしてファイルの残りを読み取ります。

test = '43534'
past_test = False
with open(fname,'r') as f:
    for line in f:
        if past_test:
            # do stuff                
        elif line == test:
            past_test = True
于 2013-07-12T16:39:10.947 に答える