2014-09-25 72 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