搜索子字符串未返回预期结果

Searching for substring not returning expected result

我正在编写一个函数,它应该导入一个文本文件,然后遍历每一行以查找包含字符串 "text5" 的行。我编写的代码(对我而言)看起来是正确的,但没有得到预期的结果。当我 运行 程序时,我得到了很多不匹配的行。但是,如果我将查找方法的输入更改为“5”,它似乎可以正常工作。

我在这里错过了什么?

with open(filename) as file_object:
    for line in file_object:
        if 'Text5' in line:
            print(line)

从Pythondocumentation,只有当你需要知道sub-string的位置时才应该使用find()方法。要检查 sub-string 是否在行中,请使用 in 运算符。

您应该根据文档使用 if 'text5' in line:,它会起作用。我认为正在发生的事情是,即使使用 find() 没有匹配,它也会 return -1 并且 if 语句将其评估为 True.

如果您正在搜索的 sub-string 是索引 0,那么 find() 唯一一次计算结果为 False,因为它将 return 值 0。任何其他索引值都是 True .