Я пытаюсь просто читать из стандартного ввода, используя кодеки, используя код нижезадержки чтения с кодеками стандартного ввода
import codecs
ins = codecs.getreader('utf-8')(sys.stdin, 'replace')
for l in ins:
print l
У меня есть еще один сценарий, который записывает на стандартный вывод в порыве небольших данных. Мне нужен мой скрипт для обработки данных после каждого всплеска. Тем не менее, кодеки, похоже, заполняют данные. Это означает, что строки, записанные в stdout, не отображаются сразу в моем коде выше. Есть ли параметр, который я могу настроить для предотвращения буферизации?
Спасибо!
Спасибо за помощь! Второй пример сработал. Я только добавил 'strip()' для чтения ввода, чтобы удалить лишнюю пустую строку, которая была введена. В качестве альтернативы я мог бы использовать 'sys.stdout.write()' вместо 'print()'. Я не получил первый пример для работы кстати. Я не вникал в это, так как моя проблема решена. – chris
Добавил ** комментарий ** к моему ответу. –
По какой-то причине я не могу найти документацию о буферизации, которая происходит в 'for l in sys.stdin'. У вас есть ссылка на это? – chris