Для работы с необработанными байтами вместо текста Unicode необходимо использовать io.BytesIO
.
import io
# Запись в буфер
output = io.BytesIO()
output.write('This goes into the buffer. '.encode('utf-8'))
output.write('ÁÇÊ'.encode('utf-8'))
# Получение записанного
print(output.getvalue())
# b'This goes into the buffer. \xc3\x81\xc3\x87\xc3\x8a'
# сброс буфера памяти
output.close()
# Инициализация буфера чтения
input = io.BytesIO(b'Inital value for read buffer')
# Считывание из буфера
print(input.read())
# b'Inital value for read buffer'
Значения, записанные в, BytesIO должны быть, bytes
, а не str
.