Spec-Zone.ru › Python 2.7

binascii — Преобразование между двоичным и ASCII

Модуль binascii содержит ряд методов для преобразования между двоичным и различными ASCII-представлениями двоичных данных. Обычно вы не будете использовать эти функции напрямую, а воспользуетесь оберточными модулями, такими как uu, base64 или binhex. Модуль binascii содержит низкоуровневые функции, написанные на C для большей скорости, которые используются более высокими уровнями модулей.

Модуль 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(string[, header])

Преобразует блок данных в кодировке quoted-printable обратно в двоичные данные и возвращает двоичные данные. Одновременно может быть передано несколько строк. Если необязательный аргумент header присутствует и имеет значение True, символы подчёркивания будут декодированы как пробелы.

binascii.b2a_qp(data[, quotetabs, istext, header])

Преобразует двоичные данные в строку(и) 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.

binascii.rlecode_hqx(data)

Выполняет RLE-сжатие данных в стиле binhex4 для data и возвращает результат.

binascii.b2a_hqx(data)

Выполняет преобразование двоичных данных в ASCII в стиле hexbin4 и возвращает результирующую строку. Аргумент должен быть уже закодирован в RLE и иметь длину, кратную 3 (кроме, возможно, последнего фрагмента).

binascii.crc_hqx(data, crc)

Вычисляет 16-битное значение CRC для data, начиная с начального значения crc и возвращает результат. Используется полином CRC-CCITT x16 + x12 + x5 + 1, часто представляемый как 0x1021. Этот CRC используется в формате binhex4.

binascii.crc32(data[, crc])

Вычисляет CRC-32, 32-битовую контрольную сумму данных, начиная с начального crc. Соответствует контрольной сумме файлов ZIP. Поскольку алгоритм предназначен для использования в качестве алгоритма контрольной суммы, он не подходит для использования в качестве общего алгоритма хеширования. Используйте следующим образом:

print binascii.crc32("hello world")
# Or, in two pieces:
crc = binascii.crc32("hello")
crc = binascii.crc32(" world", crc) & 0xffffffff
print 'crc32 = 0x%08x' % crc

Примечание

Для генерации одинакового числового значения во всех версиях Python и на всех платформах используйте crc32(data) & 0xffffffff. Если вы используете контрольную сумму только в упакованном двоичном формате, это не нужно, так как возвращаемое значение — правильное 32-битное двоичное представление независимо от знака.

Изменено в версии 2.6: Возвращаемое значение находится в диапазоне [-2**31, 2**31-1] независимо от платформы. Раньше значение было знаковым на некоторых платформах и беззнаковым на других. Используйте & 0xffffffff для значения, если вы хотите, чтобы оно соответствовало поведению Python 3.

Изменено в версии 3.0: Возвращаемое значение является беззнаковым и находится в диапазоне [0, 2**32-1] независимо от платформы.

binascii.b2a_hex(data)
binascii.hexlify(data)

Возвращает шестнадцатеричное представление двоичных данных data. Каждый байт data преобразуется в соответствующее 2-значное шестнадцатеричное представление. Результирующая строка, следовательно, вдвое длиннее длины data.

binascii.a2b_hex(hexstr)
binascii.unhexlify(hexstr)

Возвращает двоичные данные, представленные шестнадцатеричной строкой hexstr. Эта функция является обратной для b2a_hex(). hexstr должна содержать чётное количество шестнадцатеричных цифр (которые могут быть заглавными или строчными), в противном случае возбуждается исключение TypeError.

exception binascii.Error

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

exception binascii.Incomplete

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

См. также

Module base64

Поддержка кодирования в стиле base64, совместимого с RFC, в базах 16, 32 и 64.

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/2.7/library/binascii.html

Spec-Zone.ru

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