【发布时间】:2017-06-23 18:46:24
【问题描述】:
我有一个 python 脚本,我称之为重定向到 Django manage.py shell。
$ python manage.py shell < script.py
我想从用户那里得到答案来决定做什么。但我不能用input() 或sys.stdin.readline() 做到这一点。
带输入()
answer = input('A question')
if answer == 'y':
# Do something
else:
pass
错误:
EOFError: EOF when reading a line
使用 sys.stdin.readline:
answer = sys.stdin.readline()
if answer == 'y':
# Do something
else:
pass
在这种情况下,脚本会继续执行,无需等待用户输入。
这样做的正确方法是什么?
【问题讨论】:
-
为什么要将字符串“A question”传递给 readline()?
-
抱歉,我已经更正了问题。
-
你试过用 raw_input() 代替 input() 吗?
-
raw_input在 Python 3 中重命名为input。 -
我认为问题与尝试从
stdin获取输入有关,而此时已经处于stdin流重定向中。因为这两个命令似乎都在考虑stdin下一个文件字符。