我有一个文本文件,每行包含关键字,如下所示:
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("^^^^^^"):
时,条件得到满足,循环结束。我想知道为什么==
在上述情况下不起作用。
寻找方向和解释。
答案 0 :(得分:3)
在行尾可能有换行符或其他空格,因此==
不会起作用,除非你先修剪它:
if line.strip() == "^^^^^^^^^":