如何开始阅读特定行中的文本并停止和特定行
问题描述:
长时间监听第一次来电,我对此很新,所以请客气。如何开始阅读特定行中的文本并停止和特定行
我有一个大的文本文件,我想去掉页眉和页脚。我想触发文本中特定字符串的开始和停止阅读行。
filename ='Bigtextdoc.txt'
startlookup = 'Foo'
endlookup = 'Bar'
with open(filename, 'r') as infile:
for startnum, line in enumerate(infile, 1):
if startlookup in line:
data = infile.readlines()
for endnum, line in enumerate(infile, 1):
if endlookup in line:
break
print(data)
这样我可以读取线之后的报头包含“富”和如果我移动数据=行后如果endlookup线它将只读脚注中的线开始于“酒吧”
我不知道如何从Foo开始并停在酒吧?
答
为了提高可读性,我会提取逻辑的功能,如:
def lookup_between_tags(lines, starttag, endtag):
should_yield = False
for line in lines:
if starttag in line:
should_yield = True
elif endtag in line:
should_yield = False
if should_yield:
yield line
使用的事实,一个打开的文件是可迭代的,它可以用来像:
with open('Bigtextdoc.txt') as bigtextdoc:
for line in lookup_between_tags(bigtextdoc, 'Foo', 'Bar'):
print(line)
很好的解决方案。如果只有1个'endtag',你可以用'return' –
停止迭代。 –