我是python的新手,正在尝试打开文件并打印匹配两个值的行(列表中的一个值,第二个值是静态值)。我得到了第一次迭代的预期输出,但看起来for循环未运行任何其他迭代。
下面是代码:
text_file = open(Path, 'r')
list_1 = ['One', 'Two', 'Three']
static_value = 'Test'
for term in list_1:
for line in text_file:
if term in line and static_value in line:
print(line)
文件内容示例:
一个
一次测试
两个
两次测试
三个
三测
答案 0 :(得分:2)
如果交换for
循环,则可能。一种更优雅的方法是使用any()
来检查匹配项,如下所示:
for line in text_file:
if any(term in line for term in list_1) and static_value in line:
print(line)