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

时间:2017-08-08 01:32:41

标签: python text-files line-by-line

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

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

寻找方向和解释。

1 个答案:

答案 0 :(得分:3)

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

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