Оригинальный вопрос: я получил объект StringIO, как я могу преобразовать его в BytesIO?
Обновление: более общий вопрос, как преобразовать двоичный (кодированный) файловый объект в декодированный файловый объект в python3?
Наивный подход, который я получил:
import io
sio = io.StringIO('wello horld')
bio = io.BytesIO(sio.read().encode('utf8'))
print(bio.read()) # prints b'wello horld'
Есть ли более элегантный способ сделать это?
например, для обратного вопроса (BytesIO
→ StringIO
) существует класс - io.TextIOWrapper, который делает именно это (см. этот ответ)