вот альтернатива:
line = sys.stdin.readline()
if not line: raise EOFError
на 3.1.1 работает!
дело в том, что input() читает как sys.stdin.read (т. е. весь файл)… sys.stdin.readline - строку (а нам это и надо!)
C:\>python31\python c:\sum2.py<sum2.dat
C:\>sum2.py<sum2.dat
D:\>program.py < text.txt
D:\>C:\pythin31\python.exe program.py < text.txt
elcaminoкто-нибудь может объяснить почему так происходит?
Вобщем по какой-то причине если запускать прогу так:
Код:
D:\>program.py < text.txt
то пишет ошибку RuntimeError: input(): lost sys.stdin, а если выводить в файл то все ок.
А если запускать прогу так:
Код:
D:\>C:\pythin31\python.exe program.py < text.txt
то все прокатывает и пример из книги работает.
python foo.py < bar