Python имеет байты к байтам стандартные кодеки , которые выполняют удобные преобразования, такие как кавычка-печать (подходит для 7-битной таблицы), base64 (подходит для алфавитно-цифровых символов), экранирование шестнадцатеричных кодов, сжатие gzip и bz2 В Python 2 вы можете сделать:
b'foo'.encode('hex')
В Python 3 str.encode
/ bytes.decode
строго для байтов <-> преобразования str. Вместо этого вы можете сделать это, что работает в Python 2 и Python 3 ( s / encode / decode / g для обратного):
import codecs
codecs.getencoder('hex')(b'foo')[0]
Начиная с Python 3.4, есть менее неудобная опция:
codecs.encode(b'foo', 'hex')
Эти кодеки misc также доступны внутри их собственных модулей (base64, zlib, bz2, uu, quopri, binascii); API менее согласован, но для кодеков сжатия он обеспечивает больший контроль.