首页 > 解决方案 > 为什么python说一个字符串与另一个字符串不匹配

问题描述

所以我有一个名为的文本文件words.txt,它包含 3 个单词:

apple
ship
door

我想要做的是要求用户输入一个单词然后搜索文件以查看是否有这样的单词,如果没有添加它:

def search(word):
    file = open("words.txt", "r+")

    for line in file:
        if line == word:
            return False

    file.write(word + "\n")
    return True

然后我使用该函数检查并打印结果,但问题是当我输入单词ship或列表中的任何其他单词时,它应该说它不存在。

标签: pythonfiletext

解决方案


遍历文本文件时,行终止符\n保留在循环索引中。您需要在比较之前将其删除:

def search(word):
    file = open("words.txt", "r+")

    for line in file:
        if line.rstrip('\n') == word:
            return False

    file.write(word + "\n")
    return True

如果文件中的任何前导和尾随空格不重要,则可以简化line.rstrip('\n')line.strip().

>>> " foo \n".rstrip('\n')
" foo "
>>> " foo \n".strip()
"foo"

推荐阅读