次のような非常に大きなファイルがあります。
【パターン1】 ライン1 2行目 ライン3 ... ... 【エンドパターン】 【パターン2】 ライン1 2行目 ... ... 【エンドパターン】
特定のスターター パターンについてのみ、可変スターター パターン [PATTERN1] と別の定義パターン [END PATTERN] の間の行を別のファイルに抽出する必要があります。
例えば:
【パターン2】 ライン1 2行目 ... ... 【エンドパターン】
このコードを使用して、より小さなファイルで同じことを既に行っています。
FILE=open('myfile').readlines()
newfile=[]
for n in name_list:
A = FILE[[s for s,name in enumerate(FILE) if n in name][0]:]
B = A[:[e+1 for e,end in enumerate(A) if 'END PATTERN' in end][0]]
newfile.append(B)
「name_list」は、必要な特定のスターター パターンのリストです。
できます!!しかし、 .readlines() コマンドを使用せずに、大きなファイルでこれを行うためのより良い方法があると思います。
誰でも私を助けることができますか?
どうもありがとう!