Найти - Пользователи
Полная версия: Использование input после чтения их stdin
Начало » Python для новичков » Использование input после чтения их stdin
1
maxim83632
Запускаю программу вот так:
cat my_file.txt | python3 my_script.py

Внутри скрипта читаю переданный файл через sys.stdin и потом когда я следом хочу использовать input у меня вываливается ошибка EOFError: EOF when reading a line.
Объясните пожалуйста как можно прочитать данные из stdin, а потом воспользоваться input.

P.S Меня это интересует с чисто теоретической стороны. Я понимаю, что можно проще сделать. Просто интересны причины появления ошибки как её побороть можно.
terabayt
может быть только один стандартный ввод, или это с клавиатуры или с файла
когда вы таким образом запускаете, то изначально перебираются все строки а потом идет ваш input
и так как больше нету данных на чтение то вызывается ошибка EOFError
maxim83632
terabayt
Хорошо, понял, ну а как избежать ошибки?
terabayt
sys.stdin = open("/dev/tty")
а после перенаправления уже делать инпут
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB