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]
所以我有一个文本文件,我需要提取一行文本,即特定标题后的 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]