Python';在';操作员莫名其妙地失败了
我检查文件中某个单词的简单脚本似乎失败了,我似乎无法通过文档或搜索来解释它。代码如下。我相信我已经把它缩小到了“in”操作符,通过打印代码本身并找到我正在寻找的单词来失败。如果好奇的话,这个脚本是为了在Quake源代码中找到某些关键字,因为我不想查看30多个完整的源文件。任何帮助都将不胜感激,谢谢Python';在';操作员莫名其妙地失败了,python,Python,我检查文件中某个单词的简单脚本似乎失败了,我似乎无法通过文档或搜索来解释它。代码如下。我相信我已经把它缩小到了“in”操作符,通过打印代码本身并找到我正在寻找的单词来失败。如果好奇的话,这个脚本是为了在Quake源代码中找到某些关键字,因为我不想查看30多个完整的源文件。任何帮助都将不胜感激,谢谢 import os def searchFile(fileName, word): file = open(os.getcwd() + "\\" + fileName,'r') te
import os
def searchFile(fileName, word):
file = open(os.getcwd() + "\\" + fileName,'r')
text = file.readlines()
#Debug Code
print text
if(word in text):
print 'Yep!'
else:
print 'Nope!'
text
是字符串列表。如果word
是text
中的一行,则返回true。您可能希望浏览文本,然后对照每行检查单词。当然,有多种方法可以写出来
请参见此图。失败的原因是您正在检查单词是否在文本行内。只需使用read()方法并在那里签入,或者逐个遍历所有行
# first method
text = file.read()
if word in text:
print "Yep!"
# second method
# goes through each line of the text checking
# more useful if you want to know where the line is
for i, line in enumerate(file):
if word in line:
print "Yep! Found %s on line: %s"%(word, i+1)
不相关,但括号是不必要的。这样做更像是“python”:如果文本中有单词:Side-note:将某些东西描述为莫名其妙的失败可能会让人恼火。这更像是你误解了什么。使用
枚举(文件,1)
;然后您可以只使用i
而不是i+1
+1,因为我没有将2+2放在一起,您可以在文件实例上使用enumerate,这很愚蠢,因为我以前在myFile中为行做过。
for line_num, line in enumerate(file, 1):
if word in line:
print line_num, line.strip()