Python имеет стандартные кодеки с байтами для байтов , которые выполняют удобные преобразования, такие как кавычки для печати (вписываются в 7bits ascii), base64 (вписываются в буквенно-цифровые), hex escaping, gzip и bz2 compression. В Python 2 вы можете сделать:
b'foo'.encode('hex')
В Python 3, str.encode
/ bytes.decode
строго предназначены для преобразований байтов & lt; -> 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')
Эти кодеки доступны также в своих собственных модулях (base64, zlib, bz2, uu, quopri, binascii); API менее согласован, но для кодеков сжатия он предлагает больше контроля.