繁体   English   中英

sys.stdin.read()之后的Python raw_input抛出EOFError

[英]Python raw_input following sys.stdin.read() throws 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,但有没有办法'重置'STDIN?

你试过这个:

message = sys.stdin.read()
sys.stdin = open('/dev/tty')
selected_index = raw_input('Which URL to open?')

这适用于Linux; 也许它也适用于OSX。

尝试使用sys.stdin.seek(0)重置STDIN

参考: http//docs.python.org/library/fileinput.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM