私はPythonを使用して次の形式のファイルを読み取ります。
iter1
iter2iter3
[n行のデータ]
FLAG
=値
iter1
iter2
iter3
iter4iter5
[n行のデータ]
FLAG
=値
など...
FLAGを検索し、その値を読み取ってから、「n」行だけ巻き戻して、最後の反復の値を読み取りたいと思います。反復回数が常に同じであるとは限らないことに注意してください。行数'n'は各ファイル内で一貫しています。ただし、これらの行には異なるバイト数が含まれている可能性があるため、シーク機能の使用に問題があります。
私はこのようなことをしたいと思います:
f = open(file)
for i in f:
a = re.search('FLAG')
if a:
print a
spot=f.tell() #mark original spot
f.seek(-n,1) #rewind by n lines
b = re.search('iter')
print b
f.seek(spot) #return to FLAG line, continue to next data set