Форум сайта python.su
вот альтернатива:
line = sys.stdin.readline()
if not line: raise EOFError
на 3.1.1 работает!
дело в том, что input() читает как sys.stdin.read (т. е. весь файл)… sys.stdin.readline - строку (а нам это и надо!)
Отредактировано (Апрель 13, 2010 12:18:37)
Офлайн
Здравствуйте.
Возникла аналогичная проблема, но есть некоторое уточнение
Данный код возможно запустить, если прописать
C:\>python31\python c:\sum2.py<sum2.dat
C:\>sum2.py<sum2.dat
Отредактировано (Май 4, 2010 08:48:14)
Офлайн
Решил проблему с RuntimeError: input(): lost sys.stdin в питоне 31.
Вобщем по какой-то причине если запускать прогу так:
D:\>program.py < text.txt
D:\>C:\pythin31\python.exe program.py < text.txt
Отредактировано (Ноя. 21, 2010 11:39:22)
Офлайн
elcaminoкто-нибудь может объяснить почему так происходит?
Вобщем по какой-то причине если запускать прогу так:
Код:
D:\>program.py < text.txt
то пишет ошибку RuntimeError: input(): lost sys.stdin, а если выводить в файл то все ок.
А если запускать прогу так:
Код:
D:\>C:\pythin31\python.exe program.py < text.txt
то все прокатывает и пример из книги работает.
Офлайн
Старый баг с перенаправлением потоков в версиях Windows
В командной строке необходимо явно указывать интерпретатор:
python foo.py < bar
Офлайн