为什么行!=“ \ n”或行!=“” \ r \ n“或行!=” \ r“无法过滤空行?

时间:2018-09-08 03:44:48

标签: python string python-3.x if-statement 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)

为什么仍然可以打印空白行?

1 个答案:

答案 0 :(得分:3)

The

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字符,然后检查是否还有剩余。)