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

2024-10-04 05:30:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是python3.5,希望从一个文件中找到匹配的单词。我给出的单词是awesome.txt文件中的第一个单词也是awesome。那么为什么addedWord不等于word?有人能告诉我原因吗?在

我的文字.txt

awesome
shiny
awesome
clumsy

匹配代码

^{pr2}$

我也尝试过:

 d = word.replace("\n", "").rstrip()
 a = addedWord.replace("\n", "").rstrip()
      if a is d:
          print ("Matched :" +word)

我还试图通过typeOf(addedWord)typeOf(word)得到变量的类,它们都来自'str'类,但不相等。这里有什么问题吗?在


Tags: 文件代码txt原因单词replacewordawesome
2条回答

这两个字符串永远不会是同一个对象,因此不应使用is来比较它们。使用==。在

您去除换行符的直觉是正确的,但是您只需要调用一个strip()(它将删除所有空白,包括制表符和换行符)。在

你的代码有两个问题。在

1)从迭代文件返回的字符串包括尾随的换行符。正如您所怀疑的那样,您需要.strip().rstrip()或{}离开新行。在

2)字符串比较应使用==,而不是is。在

所以,试试这个:

    if addedWord == word.strip():
       print ("Match")

相关问题 更多 >