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

时间:2019-07-08 18:04:17

标签: python string file-io

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

我在这里想念什么?

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

1 个答案:

答案 0 :(得分:1)

在Python documentation中,仅当您需要知道子字符串的位置时才应使用find()方法。要检查行中是否包含子字符串,请使用in运算符。

您应该根据文档使用if 'text5' in line:,它将起作用。我认为即使没有使用find()进行匹配,也将返回-1,并且if语句将其评估为True。

如果您要搜索的子字符串的索引为0,则find()唯一的时间将为False,因为它将返回值0。其他任何索引值为True。