我检查文件中某个单词的简单脚本似乎失败了,我似乎无法通过文档或搜索来解释它。代码如下。我相信我已经将它缩小到'in'运算符,因为打印代码本身并找到我正在寻找的单词而失败。如果好奇,这个脚本是在Quake源代码中找到某些关键字,因为我宁愿不查看30多个完整的源文件。任何帮助将不胜感激,谢谢!
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!'
答案 0 :(得分:7)
失败的原因是因为您正在检查单词是否在文本行内。只需使用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)
答案 1 :(得分:5)
text
是一个字符串列表。如果word
中的text
是行,则会返回true。您可能希望iterate通过文本,然后检查每行的单词。当然,有多种方法可以写出来。
请参阅此simple example。
答案 2 :(得分:0)
for line_num, line in enumerate(file, 1):
if word in line:
print line_num, line.strip()