У Python є стандартні кодеки від байтів до байтів, які виконують зручні перетворення, такі як друковані з цитатами (вписуються в 7-бітну ascii), base64 (вписуються в буквено-цифрові символи), шістнадцяткове втечання, стискання gzip та bz2. У Python 2 ви можете:
b'foo'.encode('hex')
У Python 3 str.encode
/ / bytes.decode
суворо для байтів <-> перетворення рядків. Натомість ви можете зробити це, що працює через 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 менш стійкий, але для кодеків стиснення він пропонує більше контролю.