Python 字符串比较与从文件中读取的行不匹配

Python string comparison not matching a line read from a file

我有一个文本文件,每一行都有关键字,如下所示:

foo
foo1
^^^^^^^^^
foo5
foo7

^^^^^^^^^ 是设置为在达到时中断 for 循环的标志:

keywords = []
    with open("keywords.txt") as f:
        for line in f:
            if line.startswith(request.GET.get('search', '')):
                keywords.append(line.lower())
            if line == "^^^^^^^^^":
                break

在上面的代码中,第二个条件永远不会满足 (**if line == "^^^^^^^^^":**)。

我也试过is而不是==(但没想到行得通,果然不行)。

当我尝试line.startswith("^^^^^^"):时,条件满足,循环结束。我想知道为什么 == 在上述情况下不起作用。

寻找方向和解释。

行尾可能有一个换行符或其他空格,所以 == 将不起作用,除非你先 trim 它:

if line.strip() == "^^^^^^^^^":