请帮助我尝试理解此脚本的评估。这一定是我不明白的简单事情。我想扫描一个文本文件并输出具有特定字符串值的行
例如,我的txt文件将包含简单的内容:
beep
boop
bop
Hey
beep
boop
bop
脚本正在寻找带有“Hey”的行并试图输出该行
file_path = "C:\\downloads\\test.txt"
i = 0
file_in = open(file_path,"r+") # read & write
for lines in file_in.readlines():
i+=1
#if lines.rfind("this entity will be skipped..."):
if lines.find("Hey"):
print(i, lines)
file_in.close()
出于某种原因,它会输出每一行,但找到匹配的那一行除外。这怎么可能
当然,丹尼尔的回答是正确的,应该被接受,但我想为我的强迫症火上浇油,并提供一些改进:
做
if "Hey" in lines:
而不是if lines.find("Hey"):
可能更简单。如果您真的想使用find()
,您可以这样做:if lines.find("Hey") != -1:
.find(sub)
返回一个整数-如果找到sub
,则返回sub
的第一个索引,如果未找到,则返回-1当“Hey”出现时,它位于第一个索引(0)处,因此
.find()
返回的就是这个。否则,找不到“Hey”,因此.find()
返回-1由于python将除0以外的所有整数都视为True,因此当返回0时,即当找到“Hey”时,该条件的计算结果为True
将.find()的用法更改为以您想要的方式满足if语句的用法
相关问题 更多 >
编程相关推荐