現在、Python を使用して入力ファイルの 2 行の間のデータを抽出しようとしています。infile は、次の -START- の前に -END- 条件が発生した場合にのみ、次の 10 行のコードが必要な行 -START- があるように設定されています。-START- 行は -END- の前に何度も出現します。私が言いたいことの一般的な例を次に示します。
何とか-START-
10
行
何とか
-START-
10行
何とか-END-
何とか
-START- 10
行
何とか
-START-
は
必要
ない
....などなど
これまでのところ、反復ごとに -START- + 10 行しか取得できませんでしたが、-END- 条件が別の -START- 条件の前に来る場合にのみ書き込む条件を指定することになると、完全に失われます。私は少し初心者なので、どんな助けでも大歓迎です。
おまけ: START + 10 行の各ブロックを新しい/一意の出力ファイルに出力する必要があります。しかし、私はまだそれをいじっていないので、この部分は無視してかまいません。
-START- + 10行を印刷するためのコードは次のとおりです。
in = open('input.log')
out = open('output.txt', 'a')
lines = in.readlines()
for i, line in enumerate(lines):
if (line.find('START')) > -1:
out.write(line)
out.write(lines[i + 1])
out.write(lines[i + 2])
out.write(lines[i + 3])
out.write(lines[i + 4])
out.write(lines[i + 5])
out.write(lines[i + 6])
out.write(lines[i + 7])
out.write(lines[i + 8])
out.write(lines[i + 9])
out.write(lines[i + 10])