【问题标题】:Substring matching then printing with iteration [closed]子字符串匹配然后用迭代打印[关闭]
【发布时间】:2019-05-16 01:33:17
【问题描述】:

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

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

文本文件中的狗名:

Bob
Bobby
Kitty
Bobbel
Boaban
Cat

输出应该是:

Bob
Bobby
Bobbel

【问题讨论】:

标签: python file search


【解决方案1】:

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

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

【讨论】:

  • 我发现了这个问题,不幸的是,这可能会让我一记耳光。预期的结果是错误的,因为我想要一个 NOT IN。不是 IN 线。我知道我没有在原始帖子中解释这一点,但目标只是看到一个逐行迭代的示例,以确保我尝试了惯用的做事方式。谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-29
  • 1970-01-01
相关资源
最近更新 更多