Это вопрос использования API, которые работают с байтами, а не со строками.
sys.stdout.buffer.write(bytes_)
Как объясняют документы , вы также можете detach
потоки, чтобы они 'по умолчанию является двоичным.
Доступ к базовому байтовому буферу.
tempfile.TemporaryFile().write(bytes_)
Это уже байтовый API.
open('filename', 'wb').write(bytes_)
Как и следовало ожидать от 'b ', это байтовый API.
from io import BytesIO
BytesIO().write(bytes_)
BytesIO
- это байтовый эквивалент StringIO
.
EDIT: write
будет просто работать на любом бинарном файле файлоподобный объект.Таким образом, общее решение - просто найти правильный API.