繁体   English   中英

f.readline()!='0',即使读取仅包含0的行

[英]f.readline() != '0' even if reading a line containing only 0

在使用var = f.readline()函数在程序中设置变量时,我没有遇到麻烦,但是在从文本文件中读取时,使用if语句遇到了麻烦。 我试图查看文本文件中是否为0,并且每次使用if f.readline() == '0':它的行为就好像它不等于0。

我的脚本示例如下:

f = open("file.txt","r")

myvar = f.readline()
f.close



if myvar == "0":
    print "The variable is 0"
    raw_input("Press enter to continue")
else:
    print "The variable is not 0"
    raw_input("Press enter to continue")

我的代码将显示为The variable is not 0

为什么是这样? 以及如何在readline函数中使用if语句?

readline方法不会从行中删除结尾的换行符。 您需要手动执行此操作:

myvar = f.readline().rstrip()

否则, myvar等于"0\\n" ,不等于"0"


另外,您忘记了通过调用close方法来关闭文件:

f.close() # Notice the parenthesis

当然,使用with语句会更好:

with open("file.txt") as f:
    myvar = f.readline().rstrip()

当控件离开其代码块时, with将自动关闭文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM