На этом шаге мы рассмотрим особенности реализации такого кодирования.
Вам нужно декодировать или закодировать бинарные данные, используя кодировку Base64.
В модуле base64 есть две функции, которые делают именно то, что вам нужно: b64encode() и b64decode(). Например:
>>> # Какие-то байтовые данные >>> s = b'hello' >>> import base64 >>> # Закодировать в Base64 >>> a = base64.b64encode(s) >>> a b'aGVsbG8=' >>> # Декодировать из Base64 >>> base64.b64decode(a) b'hello' >>>
Кодировка Base64 предназначена только для использования с байториентированными данными, такими как байтовые строки и байтовые массивы. Более того, вывод процесса кодирования всегда будет байтовой строкой. Если вы смешиваете данные в Base64 с текстом в Unicode, вам придется выполнить дополнительный шаг для декодирования. Например:
>>> a = base64.b64encode(s).decode('ascii') >>> a 'aGVsbG8=' >>>
При декодировании Base64 могут быть предоставлены и байтовые строки, и текстовые строки в Unicode. Однако строки Unicode могут содержать только символы ASCII.
На следующем шаге мы рассмотрим чтение и запись бинарных массивов структур.