我的txt文件有:
/aaa/AB01_Z
/bbb/AB02_Z
/ccc/AB03_Z
/ddd/AB04_Z
我感兴趣的模式是:
AB01, AB03
我想按此顺序打印带有图案的线条。
我试过了:
import re
lst = ['AB01', 'AB03']
f = open('myfile.txt')
for pattern in lst:
for line in f:
if re.search(pattern, line):
print(line)
但是,这只会返回' / aaa / AB01_Z'。
如果我在模式列表的循环下打开文件,我会得到' / aaa / AB01_Z'和' / ccc / AB03_Z'正如所料:
for pattern in lst:
f = open('myfile.txt')
for line in f:
if re.search(pattern, line):
print(line)
为什么第一种情况下模式循环不运行?
答案 0 :(得分:1)
执行for line in f
时,只要有f
行,您就会获得一个迭代器,为您提供django-taggit
行。在第一种情况下,迭代器在处理第一个模式时完成所有行的运行,一旦到达第二个模式就没有提供任何内容。