如何解析 python 中特定文本后的行

How to parse lines after a certain text in python

我正在尝试解析一个文本文件。我只需要它的某些行。我需要搜索“工具>退出” 并解析之后的所有行,直到倒数第二行。这是我要解析的文本 -

complete
line:567       finish;
tool> exit
  Finish Failed  Myname
       0      0   ABC_dog_ctl
       5      1   ABC_cator_t
      34      0   ABC_cator_t
       0      0   ABC_cator_t
  Total = 12,  Failing = 4
  summary at 70s
TOOL:   mytool

我只想解析 -

  Finish Failed  Myname
       0      0   ABC_dog_ctl
       5      1   ABC_cator_t
      34      0   ABC_cator_t
       0      0   ABC_cator_t
  Total = 12,  Failing = 4
  summary at 70s

我正在尝试类似 -

my_list = []
for line_no, line in enumerate(Infile):
    if "tool> exit" in line:
        start_line = line_no
        my_list.append[line+1]

但我没有得到想要的结果。 “TOOL”有多个实例,所以我无法搜索它,但它是最后一行,所以我想我总是可以寻找它上面的行。

是这样的吗?

my_list = []
reached_tool_exit = False
for line in Infile:
  if "tool> exit" in line:
    reached_tool_exit = True
  if reached_tool_exit:
    my_list.append(line)
my_list = my_list[:-1]

编辑:

实际上,您应该使用 del my_list[-1] 而不是 my_list = my_list[:-1]。这样效率更高。