Python 'in' 运算符莫名失败
我写了一个简单的脚本,用来检查文件里是否有某个特定的词,但现在这个脚本好像出问题了,我也找不到文档或网上的资料来解释这个问题。下面是我的代码。我觉得问题可能出在'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!'
3 个回答
0
在编程中,有时候我们会遇到一些问题,想要找到解决办法。比如,有人可能在使用某个工具或库时,遇到了错误或者不明白怎么用。这时候,大家会去一个叫StackOverflow的网站上提问,那里有很多程序员会帮忙解答。
在提问的时候,最好能把遇到的问题描述清楚,并且提供一些相关的代码,这样别人才能更好地理解你的问题。比如,你可以把出错的代码放在一个代码块里,像这样:
for line_num, line in enumerate(file, 1):
if word in line:
print line_num, line.strip()
。这样做可以让其他人更容易看到你具体遇到了什么问题。
总之,提问时要尽量详细,这样才能得到更好的帮助。
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)