В Python 3 и stdin, stout и stderr заключены в буферы ввода-вывода, которые применяются для кодирования / декодирования текста на лету к потокам.
Если вам нужен прямой доступ к базовому двоичному потоку, он доступен в качестве атрибутов в этих оболочках.
Для стандартного ввода, вместо вызова .read
в sys.stdin
do sys.stdin.buffer.raw.read()
- (и аналогично для stderr и stdout, просто используйте ...buffer.raw
, чтобы добраться до основной двоичный поток).