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() == "^^^^^^^^^":
我有一个文本文件,每一行都有关键字,如下所示:
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() == "^^^^^^^^^":