Python 匹配后提取文本 4 行

Python extract text 4 lines after match

所以我有一个文本文件,我需要提取一行文本,即特定标题后的 4 行。

即:
标题
第 1 行
第 2 行
第 3 行
要提取的行

我花了几个小时寻找一种简单的方法来做到这一点,但我对 python 的了解太有限,无法将我发现的任何东西应用到这个特定案例中。谢谢!

找到header然后只需要接下来的四行,最后一行就是你想要的。

from itertools import islice

with open("words.txt") as f:
    for line in f:
        if line.rstrip() == "Heading":
            print(list(islice(f, 4))[-1])
            break
line to be extracted

或使用 linecache 获取 Heading 行后四行的行:

from linecache import getline
with open("words.txt") as f:
    for ind, line in enumerate(f,1):
        if line.rstrip() == "Heading":
            print(getline(f.name, ind + 4))
            break
line to be extracted

如果有多行,请不要打断。

from linecache import getline
with open("words.txt") as f:
    for ind, line in enumerate(f,1):
        if line.rstrip() == "Heading":
            print(getline(f.name, ind + 4))

line to be extracted

other line to be extracted
with open('file.txt') as f:
    data = f.read().split('\n')
    if 'Heading' in data: 
        my_line = data[data.index('Heading') + 4]