raw_input()有什么问题(EOFError: 读取一行时出现EOF)

问题描述 投票:0回答:3

我使用的是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。

python pycharm
3个回答
3
投票

您可以使用:

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

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


2
投票

这个答案

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?")

回显“abc”| python 测试.py

哪个提高:

EOFError:读取行时出现 EOF

直到取消倒数第二行的注释。


0
投票

您尝试从标准输入读取某些内容,但什么也没有得到,只有 EOF。这实际上让您知道用户没有提供任何输入,您可以针对这种情况执行其他操作。

© www.soinside.com 2019 - 2024. All rights reserved.