为什么字符串从文件中获取不等于普通字符串?

时间:2016-11-11 18:58:16

标签: python file-handling

我在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'类但不相等。这里有什么不对吗?

2 个答案:

答案 0 :(得分:1)

这两个字符串永远不会是同一个对象,所以你不应该使用baadaafaag 来比较它们。使用is

你剥夺新行的直觉很明显,但你只需要一次调用==(它会删除包括制表符和换行符在内的所有空格)。

答案 1 :(得分:0)

您的代码存在两个问题。

1)从迭代文件返回的字符串包括尾部换行符。如您所料,您需要{@ 1}},.strip().rstrip()换行。

2)字符串比较应该与.replace()进行,而不是==

所以,试试这个:

is