首页 > 解决方案 > 子串匹配然后用迭代打印

问题描述

我尝试了很多方法,有时它会得到最后一个已知的匹配,有时它只是在第一个停止,有时它根本不起作用。我的目标是在一个短语中找到每个匹配的单词,如果为真则打印每个短语。我尝试做这样的事情(PSUEDO'ISH)-不要判断代码它只是我在输入时能想到的最好的例子:

f = open("dognames.txt", "r")
key = "Bob" 
if key in f:
    print line

狗名在文本文件中:

Bob
Bobby
Kitty
Bobbel
Boaban
Cat

输出应该是:

Bob
Bobby
Bobbel

标签: pythonfilesearch

解决方案


关闭,但您忘记循环遍历行

f = open("dognames.txt", "r")
key = "Bob" 
for line in f:
    if key in line:
        print line

此外,您要确保文件在使用后关闭,因此使用这种格式,它实质上为文件创建了一个上下文,并允许文件在执行离开with语句范围后自行关闭。

with open("dognames.txt", "r") as f:
    key = "Bob" 
    for line in f:
        if key in line:
            print line

推荐阅读