我試圖在命令提示符下從用戶處獲得輸入。該程序以「cat text.txt | ./thescript.py」的形式從文本文件中讀取數據。raw_input()中的Python EOF錯誤
在所涉腳本的位置,所有數據已被讀入,處理並放入列入清單。
現在我通過列表尋找可疑項目的列表。代碼基本如下所示:
for invoice in parsedlist:
if invoice[-1] == 3:
sys.stderr.write("triple duplicate at " + invoice[2]+' : ' + invoice[3]+"\n")
sys.stderr.write("continue Y or N \n")
answer = raw_input("Type your answer here")
if answer == 'N':
sys.exit(1)
else:
pass`
此代碼導致EOFError。從我已經理解,stdin是在這種情況下從貓讀取,因爲它已經達到EOF,這就是爲什麼raw_input獲取EOF在這裏? (我認爲)目標是讓腳本打印標準錯誤警告,並讓我選擇是否忽略警告並繼續或完全退出。最後,所有輸出都會顯示出來,並且不會包含任何錯誤警告或響應。我看過使用try/exception的例子,但在這種情況下我還沒有弄清楚它的意義。 (例如,爲什麼raw_input不會等待輸入?)
我想我可能只是以錯誤的方式攻擊這個問題,從而產生一個問題,可能會更好地走過去,然後跳過。任何幫助一如既往地受到讚賞。
對不起,縮進。他們是在原來的。 – Wyatt
'cat text.txt | 。/ thescript.py'通常拼寫爲'./thescript.py
除非他簡化了左側,所以它不會分散我們的手頭問題......; –