Python readline()无法正确读取行

时间:2015-03-21 17:22:57

标签: python

当我有一个文本文件并且第一行是“hello”时,如果我写

reader = open('txtfile.txt', 'r')
line = reader.readline()
print(line)

它将打印“你好”。 然后,当我写

input = input()
if line == input:
    print('they are the same')
else:
    print('they are not the same')

它表示它们不一样,即使输入是“你好”。这是我的代码的问题还是readline()不允许这个?

1 个答案:

答案 0 :(得分:2)

我建议使用with open() as.. : because ...

  

这样做的好处是文件在套件完成后正确关闭,即使在途中引发了异常。

您的计划将成为:

with open('txtfile.txt', 'r') as f:
    for line in f:
        answer = input('\nContent?')
        if line.replace('\n','') == answer:
            print('they are the same')
        else:
            print('they are not the same')

另外,请避免命名变量'input',因为它会影响内置input()的名称。


如果您的文件是:

hello
Hi
bye

那么你的第一行就是'hello\n'replace()在比较之前移除了\n