podobne pytanie zostało zadane before, ale odpowiedzi sugerowały obejście, które nie ma zastosowania w mojej sytuacji.Python raw_input after sys.stdin.read() wyrzuca EOFError
Wiadomość e-mail jest wyprowadzony z mutt do skryptu, i są odczytywane ze standardowego wejścia:
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?')
Rozumiem, że raw_input() otrzyma EOF pozostawioną przez read(), ale czy jest jakiś sposób, aby "zresetować" STDIN?
Jakiego systemu używasz? W Linuksie działa to dobrze! –
Mac OS X (10.7). Alex Martelli zasugerował ponowne otwarcie STDIN [tutaj] (http://stackoverflow.com/questions/2197891/how-to-handle-eoferror-for-raw-input-in-python-in-mac-os-x), ale to nie działa dla mnie. – janeden
Właśnie potwierdziłem, że ten sam wyjątek jest generowany w systemie GNU/Linux (CentOS). Kiedy ręcznie podaję STDIN (kończąc wejście za pomocą CTRL-D), skrypt działa poprawnie, ale wywołanie './script.py
janeden