Spec-Zone.ru › Python 3.5

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

Исключение, возбуждаемое при неполных данных. Обычно это не ошибки программирования, но они могут быть обработаны путем считывания немного больше данных и повторной попытки.

См. также

Module base64
Поддержка кодирования в стиле base64, совместимого с RFC, в базах 16, 32, 64 и 85.
Module binhex
Поддержка формата binhex, используемого на Macintosh.
Module uu
Поддержка кодирования UU, используемого в Unix.
Module quopri
Поддержка кодировки quoted-printable, используемой в сообщениях электронной почты MIME.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.5/library/binascii.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API