我必须逐行读取文件,但是在出现匹配项后才开始打印它的比赛。假设匹配项为XXX
因此,如果我们有一个包含以下内容的文件
wdwdw
dwdww
XXX
DWDM
111
它应该显示DWDM和111
我尝试了以下方法。
file open('buffer.txt', 'r')
for line in file:
if re.search('XXX'. line):
print(line)
但是只打印一行。如何迫使它打印其余部分?
答案 0 :(得分:1)
它仅打印匹配的行,这是正常的。尝试类似的事情:
with open('buffer.txt', 'r') as f:
matched = False
for line in f:
if matched:
print(line)
if re.search('XXX', line):
matched = True
答案 1 :(得分:0)
1)不要使用正则表达式进行简单搜索。
2)在with
语句中打开文件。
3)只需创建一个布尔变量即可告诉您何时看到所需的行:
with open('buffer.txt', 'r') as f:
start_printing = False
for line in f.readlines():
if start_printing:
print(line)
elif 'XXX' in line:
start_printing = True
答案 2 :(得分:0)
file = open('buffer.txt', 'r')
found = False
for line in file:
if not found:
if re.search('XXX'. line):
found = True
else:
print(line)