2014-01-27 44 views
3

我使用python 2.7.6,並調用的raw_input(時),有一個例外有什麼不對的raw_input()(的EOFError:EOF讀線的時候)

flight_name = raw_input('\nEnter the name of Flight: ') 

我找到了解決辦法,但爲什麼會出現這樣的例外?它是一個包嗎?

try: 
     flight_name = raw_input('\nEnter the name of Flight: ') 
except (EOFError): 
     break 

我正在使用PyCharm。

+0

什麼輸入您想要提供給'raw_input'?你能發佈完整的堆棧跟蹤嗎? –

+0

我輸入了一些航班名稱,例如'倫敦 - 巴黎',然後查看我的航班名稱並檢查它是否等於 – Litwisha

+1

@ user3238724,您是使用崇高還是類似的東西?請參閱:http://stackoverflow.com/questions/17758782/python-eoferror-eof-when-reading-a-line – zhangxaochen

回答

1

您試圖從標準輸入中讀取某些東西,但您沒有收到任何東西,只有EOF。這實際上讓你知道用戶沒有提供任何輸入,你可以爲這種情況做其他事情。

+0

但我實際上輸入了一些航班的名字。爲什麼它不起作用? – Litwisha

+0

你如何輸入航班的名稱?你使用哪些鍵? – tayfun

+0

例如London-Paris – Litwisha

-1

你可以使用:

sys.stdin = open('/dev/tty') 
answer = raw_input('Commit anyway? [N/y] ') 

來源:https://stackoverflow.com/a/7437724/1465640

+0

不,您不能在PyCharm IDE控制檯中。這隻適用於你已經*在終端中但是'stdin'是一個管道。 –

+0

這個問題沒有提到關於PyCharm的任何信息。如果用戶像我一樣搜索'raw_input + EOFError',他會發現這個問題。是的,埋在評論中有一行提到PyCharm,但只要這個問題沒有提到PyCharm,這是一個有效的答案。 – Pylinux

+0

沒有這個評論,這個問題太模糊了,我正在思考關閉它;另一種方法是我們編輯這些細節。即使這不僅僅是一個IDE,將'sys.stdin'設置爲'/ dev/tty'僅當*有一個TTY連接時才起作用, stdin'尚未連接到TTY。 –

相關問題