我正在编写一个函数,该函数应导入文本文件,然后迭代每一行以查找包含字符串“ text5”的行。我编写的代码(对我而言)看起来是正确的,但没有得到预期的结果。当我运行程序时,我发现很多行不匹配。但是,如果将find方法的输入更改为“ 5”,它似乎可以正常工作。
我在这里想念什么?
with open(filename) as file_object:
for line in file_object:
if 'Text5' in line:
print(line)
答案 0 :(得分:1)
在Python documentation中,仅当您需要知道子字符串的位置时才应使用find()
方法。要检查行中是否包含子字符串,请使用in
运算符。
您应该根据文档使用if 'text5' in line:
,它将起作用。我认为即使没有使用find()
进行匹配,也将返回-1,并且if语句将其评估为True。
如果您要搜索的子字符串的索引为0,则find()
唯一的时间将为False,因为它将返回值0。其他任何索引值为True。