我目前正在尝试使用 Python 在输入文件的两行之间提取一些数据。infile 的设置使得有一行 -START- 当且仅当 -END- 条件出现在下一个 -START- 之前,我需要接下来的 10 行代码。-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])