我在python 3.5上,想要从文件中找到匹配的单词。我提供的字词是awesome
,.txt
文件中的第一个字也是awesome
。那么为什么addedWord
不等于word
?有人可以给我原因吗?
myWords.txt
awesome
shiny
awesome
clumsy
匹配代码
addedWord = "awesome"
with open("myWords.txt" , 'r') as openfile:
for word in openfile:
if addedWord is word:
print ("Match")
我也尝试过:
d = word.replace("\n", "").rstrip()
a = addedWord.replace("\n", "").rstrip()
if a is d:
print ("Matched :" +word)
我还尝试通过typeOf(addedWord)
和typeOf(word)
来获取变量类。两者都来自'str'
类但不相等。这里有什么不对吗?
答案 0 :(得分:1)
这两个字符串永远不会是同一个对象,所以你不应该使用baadaafaag
来比较它们。使用is
。
你剥夺新行的直觉很明显,但你只需要一次调用==
(它会删除包括制表符和换行符在内的所有空格)。
答案 1 :(得分:0)
您的代码存在两个问题。
1)从迭代文件返回的字符串包括尾部换行符。如您所料,您需要{@ 1}},.strip()
或.rstrip()
换行。
2)字符串比较应该与.replace()
进行,而不是==
。
所以,试试这个:
is