2014-09-25 69 views
0

我玩第一次与输入Python和获得这些代码的一些错误:用Input - Python选择文件?

import random 

    x = input("Name of the File? ") 
    lines = open(x).read().splitlines() 
    myline =random.choice(lines) 
    print(myline) 

当我运行它,它问我的名字..然后我输入:data.txt中 和得到这个错误:

NameError: name 'data' is not defined 

回答

1

使用raw_input()代替:

import random 

x = raw_input("Name of the File? ") 
lines = open(x).read().splitlines() 
myline =random.choice(lines) 
print(myline) 

之所以input()是不是为你工作是它读取您的输入,然后尝试使用eval进行评估。当您输入data时,它会尝试输入eval(data),这会导致NameError(除非碰巧在该范围内有该名称的变量)。您可以使其与input()一起使用,但是,您需要输入引号以便将其评估为字符串,例如,输入"data"

+0

非常感谢!很棒! – Jerome 2014-09-25 15:01:46

+0

@Jerome - 很高兴听到它。 – mhawke 2014-09-25 15:05:09

+2

@Jerome如果这个答案适用于您,您应该点击选票下面的勾选标记以“接受”它。如果您有任何问题,请参阅[接受答案时的含义是什么?](http://stackoverflow.com/help/accepted-answer)。 – skrrgwasme 2014-09-25 15:44:45