Python在匹配后提取文本4行

时间:2015-05-17 11:44:46

标签: python text extract

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

即:
标题
一号线
2号线
3号线
要提取的行

我一直在寻找一个简单的方法来实现它,但我对python的了解太有限了,无法应用我在这个特定情况下发现的任何东西。谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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