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

时间:2014-12-05 22:08:08

标签: python file readline

使用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

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

1 个答案:

答案 0 :(得分:4)

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

myvar = f.readline().rstrip()

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


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

f.close() # Notice the parenthesis

当然,使用with-statement会更好:

with open("file.txt") as f:
    myvar = f.readline().rstrip()
当控件离开其代码块时,

with将自动关闭文件。