【问题标题】:f.readline() != '0' even if reading a line containing only 0f.readline() != '0' 即使读取仅包含 0 的行
【发布时间】:2014-12-05 22:08:07
【问题描述】:

我在程序中使用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 函数一起使用?

【问题讨论】:

  • print(repr(myvar)) 在正确的位置怎么样?它将帮助您了解会发生什么...

标签: python file readline


【解决方案1】:

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 将在控件离开其代码块时自动关闭文件。

【讨论】:

  • 谢谢!我为此挣扎了一会儿。对此,我真的非常感激。感谢您的快速回复。
猜你喜欢
  • 1970-01-01
  • 2018-09-05
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多