Подтвердить что ты не робот

Почему текстовый ввод-вывод должен быть буферизирован в python 3?

Python 2 поддерживает небуферизованный ввод/вывод текста.

Тот же подход не работает в python 3. Почему был отключен небуферизованный текстовый ввод-вывод?

> import sys
> sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
builtins.ValueError: can't have unbuffered text I/O

Двоичный файл все еще отлично работает:

> sys.stdout = os.fdopen(sys.stdout.fileno(), 'wb', 0) # works fine
4b9b3361

Ответ 2

Для текстовых файлов, если вы хотите использовать буферизацию по очереди, используйте open(..., buffering=1)

Из документации python:

1 для выбора буферизации строк (используется только в текстовом режиме)