特定の単語を含む行から非常に大きなファイルを読みたいのですが、それを行う最善の方法は何ですか?
50K行のファイルだとしましょう
43511
24622
53213
43534
57656
12121
このファイルの 43534 を含む行から読み取りを開始したいのですが、大きなファイルに対して最も効率的な方法は何ですか?
メモリを大幅に爆発させずに手動で行う方法の 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()
お役に立てれば!
探している特定のターゲット文字列を読み取ったかどうかを表すバイナリ変数を作成するだけです。文字列に到達したら、フラグを反転し、スクリプトをトリガーしてファイルの残りを読み取ります。
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