3

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

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("^^^^^^"):时,条件满足,循环结束。我想知道为什么==在上述情况下不起作用。

寻找一些方向和解释。

4

1 回答 1

4

行尾可能有换行符或其他空格,所以==不会起作用,除非你先修剪它:

if line.strip() == "^^^^^^^^^":
于 2017-08-08T01:36:04.577 回答