【问题标题】:Python string comparison not matching a line read from a file [duplicate]Python字符串比较与从文件中读取的行不匹配[重复]
【发布时间】:2018-01-15 09:54:56
【问题描述】:

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

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

寻找方向和解释。

【问题讨论】:

  • 您是否尝试在末尾添加换行符 '\n'?使用repr(line)查看该行的实际内容。
  • 感谢@AshwiniChaudhary 的提示,下次我遇到类似问题时会派上用场。我在字符串末尾添加了\n,条件通过了。

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


【解决方案1】:

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

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

【讨论】:

  • 这成功了,谢谢:)
猜你喜欢
  • 2016-11-05
  • 1970-01-01
  • 2019-05-04
  • 2017-08-20
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
  • 2022-03-30
  • 2013-10-14
相关资源
最近更新 更多