binascii — Преобразование между двоичным и ASCII
Модуль binascii содержит ряд методов для преобразования между двоичным и различными ASCII-кодированными двоичными представлениями. Обычно вы не будете использовать эти функции напрямую, а воспользуетесь оберточными модулями, такими как uu, base64 или binhex. Модуль binascii содержит низкоуровневые функции, написанные на C для большей скорости, которые используются более высокоуровневыми модулями.
Примечание
Функции модуля a2b_* принимают строковые значения Unicode, содержащие только символы ASCII. Другие функции принимают только объекты типа bytes-подобный (такие как bytes, bytearray и другие объекты, поддерживающие протокол буфера).
Изменено в версии 3.3: Функции a2b_* теперь принимают строки Unicode, содержащие только символы ASCII.
Модуль binascii определяет следующие функции:
-
binascii.a2b_uu(string) -
Преобразует одну строку данных, закодированных в uuencode, обратно в двоичный формат и возвращает двоичные данные. Строки обычно содержат 45 (двоичных) байт, за исключением последней строки. Данные строки могут быть последовали пробелами.
-
binascii.b2a_uu(data) -
Преобразует двоичные данные в строку ASCII символов. Возвращаемое значение - преобразованная строка, включая символ новой строки. Длина data должна быть не более 45.
-
binascii.a2b_base64(string) -
Преобразует блок данных, закодированных в base64, обратно в двоичный формат и возвращает двоичные данные. Одновременно можно передавать несколько строк.
-
binascii.b2a_base64(data) -
Преобразует двоичные данные в строку ASCII символов в кодировке base64. Возвращаемое значение - преобразованная строка, включая символ новой строки. Новая строка добавляется, так как исходное назначение этой функции было в том, чтобы обрабатывать последовательность входных строк по 57 байт для получения выходных строк, соответствующих стандарту MIME-base64. В противном случае вывод соответствует RFC 3548.
-
binascii.a2b_qp(data, header=False) -
Преобразует блок данных, закодированных в quoted-printable, обратно в двоичный формат и возвращает двоичные данные. Одновременно можно передавать несколько строк. Если присутствует необязательный аргумент header и имеет значение true, подчеркивания будут декодированы как пробелы.
-
binascii.b2a_qp(data, quotetabs=False, istext=True, header=False) -
Преобразует двоичные данные в строку(и) ASCII символов в кодировке quoted-printable. Возвращаемое значение - преобразованная(ые) строка(и). Если присутствует необязательный аргумент quotetabs и имеет значение true, все табуляции и пробелы будут закодированы. Если присутствует необязательный аргумент istext и имеет значение true, новые строки не кодируются, но заключительные пробелы будут закодированы. Если присутствует необязательный аргумент header и имеет значение true, пробелы будут закодированы как подчеркивания в соответствии с RFC1522. Если необязательный аргумент header присутствует и имеет значение false, символы новой строки также будут закодированы; в противном случае преобразование символов новой строки может повредить двоичный поток данных.
-
binascii.a2b_hqx(string) -
Преобразует ASCII-данные в формате binhex4 в двоичные данные без выполнения RLE-декомпрессии. Строка должна содержать полное количество двоичных байт или (в случае последней части данных binhex4) содержать оставшиеся биты, установленные в ноль.
-
binascii.rledecode_hqx(data) -
Выполняет RLE-декомпрессию данных в соответствии со стандартом binhex4. Алгоритм использует
0x90после байта как индикатор повторения, за которым следует счетчик. Счетчик0указывает значение байта0x90. Процедура возвращает декомпрессированные данные, если данные ввода заканчиваются на незавершенном индикаторе повторения, в этом случае поднимается исключениеIncomplete.Изменено в версии 3.2: Принимает только строковые объекты bytes или bytearray в качестве входных данных.
-
binascii.rlecode_hqx(data) -
Выполняет RLE-сжатие данных в стиле binhex4 для data и возвращает результат.
-
binascii.b2a_hqx(data) -
Выполняет перевод двоичных данных в ASCII в формате hexbin4 и возвращает результирующую строку. Аргумент должен быть уже закодирован в RLE и иметь длину, кратную 3 (кроме, возможно, последнего фрагмента).
-
binascii.crc_hqx(data, value) -
Вычисляет значение CRC-16 для data, начиная с value в качестве начального значения CRC, и возвращает результат. Используется полином CRC-CCITT x16 + x12 + x5 + 1, часто представляемый как 0x1021. Этот CRC используется в формате binhex4.
-
binascii.crc32(data[, value]) -
Вычисляет CRC-32, 32-битный контрольную сумму для data, начиная с начального значения CRC value. Значение по умолчанию - ноль. Алгоритм соответствует контрольной сумме файлов ZIP. Поскольку алгоритм разработан для использования в качестве алгоритма контрольной суммы, он не подходит для использования в качестве общего алгоритма хеширования. Используйте так:
print(binascii.crc32(b"hello world")) # Or, in two pieces: crc = binascii.crc32(b"hello") crc = binascii.crc32(b" world", crc) print('crc32 = {:#010x}'.format(crc))Изменено в версии 3.0: Результат всегда беззнаковый. Чтобы получить то же численное значение на всех версиях и платформах Python, используйте
crc32(data) & 0xffffffff.
-
binascii.b2a_hex(data) -
binascii.hexlify(data) -
Возвращает шестнадцатеричное представление двоичных данных data. Каждый байт data преобразуется в соответствующее 2-значное шестнадцатеричное представление. Возвращаемый объект bytes, следовательно, вдвое длиннее, чем длина data.
-
binascii.a2b_hex(hexstr) -
binascii.unhexlify(hexstr) -
Возвращает двоичные данные, представленные шестнадцатеричной строкой hexstr. Эта функция является обратной
b2a_hex(). hexstr должна содержать четное количество шестнадцатеричных цифр (которые могут быть прописными или строчными), в противном случае возбуждается исключениеError.
-
exception binascii.Error -
Исключение, возбуждаемое при ошибках. Обычно это ошибки программирования.
-
exception binascii.Incomplete -
Исключение, возбуждаемое при неполных данных. Обычно это не ошибки программирования, но они могут быть обработаны путем считывания немного больше данных и повторной попытки.
См. также
-
Modulebase64 - Поддержка кодирования в стиле base64, совместимого с RFC, в базах 16, 32, 64 и 85.
-
Modulebinhex - Поддержка формата binhex, используемого на Macintosh.
-
Moduleuu - Поддержка кодирования UU, используемого в Unix.
-
Modulequopri - Поддержка кодировки quoted-printable, используемой в сообщениях электронной почты MIME.
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.5/library/binascii.html