我正在使用python 2.7.6,并且在调用raw_input()时,存在异常
flight_name = raw_input('\nEnter the name of Flight: ')
我找到了解决方案,但为什么会出现这种异常?它是一个包吗?
try:
flight_name = raw_input('\nEnter the name of Flight: ')
except (EOFError):
break
我正在使用PyCharm。
答案 0 :(得分:2)
您可以使用:
sys.stdin = open('/dev/tty')
answer = raw_input('Commit anyway? [N/y] ')
答案 1 :(得分:1)
你试图从标准输入中读取一些东西,但你没有得到任何东西,只有EOF。这实际上让你知道用户没有提供任何输入,你可以为这种情况做其他事情。
答案 2 :(得分:1)
这个答案
sys.stdin = open('/dev/tty')
answer = raw_input('Commit anyway? [N/y] ')
如果您之前已从代码中的sys.stdin中读取,则非常有用。在这种情况下,raw_input行将抛出EOF错误而不等待用户输入,如果在raw_input之前设置sys.stdin = open('/ dev / tty'),它会重置stdin并允许用户输入工作。 (在python 2.7中测试)
## test.py
import sys
for line in sys.stdin:
pass
#sys.stdin = open('/dev/tty')
raw_input("Are you sure?")
echo'abc'| python test.py
提出了什么:
EOFError:读取行时的EOF
直到您取消注释第2行到最后一行。