为什么 line != "\n" 或 line != "\r\n" 或 line !="\r" 不能过滤空行?

Why line != "\n" or line != "\r\n" or line !="\r" can't filte blank line?

空行只包含\n\r\n\r.

tempfile = open(file,"r")
for id,line in  enumerate(tempfile):
    if(line != "\n" or line != "\r\n" or line !="\r"):
        print(id,line)

为什么空行还能打印出来?

if(line != "\n" or line != "\r\n" or line !="\r"):

应该阅读

if line != "\n" and line != "\r\n" and line !="\r":

即使用 and 而不是 or。 (我还删除了括号,因为 Python 中不需要它们。)

同样的表达式可以写得更地道:

if line not in {"\n", "\r\n", "\r"}:

或者甚至:

if line.rstrip("\r\n"):

(这会删除所有尾随的 CR 和 LF 字符,然后检查是否还有任何内容。)