Python中的raw_input在sys.stdin.read()后抛出EOFError
之前有人问过类似的问题,可以查看这里,不过那些答案提供的解决办法对我来说不适用。
一封邮件是通过mutt传给一个脚本的,然后这个脚本从标准输入(STDIN)读取内容:
message = sys.stdin.read()
# message is parsed and URLs are printed as a list to choose from...
selected_index = raw_input('Which URL to open?')
我知道raw_input()会读取read()留下的文件结束符(EOF),但有没有办法“重置”标准输入呢?
2 个回答
0
试着用 sys.stdin.seek(0)
来重置标准输入。
6
你试过这个吗:
message = sys.stdin.read()
sys.stdin = open('/dev/tty')
selected_index = raw_input('Which URL to open?')
这个在Linux系统上有效;也许在OSX系统上也能用。