如果来自文件的行等于用户输入

时间:2014-02-02 19:18:59

标签: python

所以我有这段代码:

f=open('spells.txt')
input = raw_input("What spells?")
for line in f:
        if line == input:
                print line
f.close()

我想弄清楚为什么它不会读出我输入的咒语的标题。我知道读取有效,因为我可以打印出一定数量的行。有什么我不了解文件输入与用户输入。我觉得某个地方有一个隐藏的地方,但我不确定。

2 个答案:

答案 0 :(得分:1)

文件中的行最后包含换行符'\n',请尝试:

if line.rstrip() == input.strip():

答案 1 :(得分:0)

这是更新的代码:

f=open('spells.txt')
userInput = raw_input("What spell?")
for line in f:
        if line.rstrip('\n') == userInput:
                print line
f.close()

它仍会产生相同的结果,但没有显示任何结果,它会返回到命令行。我会尝试其他的条带,但我想我会在这里发布这个更新。