It's a matter of using APIs that operate on bytes, rather than strings.
sys.stdout.buffer.write(bytes_)
As the docs explain, you can also detach
the streams, so they're binary by default.
This accesses the underlying byte buffer.
tempfile.TemporaryFile().write(bytes_)
This is already a byte API.
open('filename', 'wb').write(bytes_)
As you would expect from the 'b', this is a byte API.
from io import BytesIO
BytesIO().write(bytes_)
BytesIO
is the byte equivalent to StringIO
.
EDIT: write
will Just Work on any binary file-like object. So the general solution is just to find the right API.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…