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 -
Исключение, возбуждаемое при неполных данных. Обычно это не ошибки программирования, но их можно обработать, прочитав немного больше данных и повторив попытку.
См. также
-
Modulebase64 -
Поддержка кодирования в стиле base64, совместимого с RFC, в базах 16, 32 и 64.
-
Modulebinhex -
Поддержка формата binhex, используемого на Macintosh.
-
Moduleuu -
Поддержка кодирования UU, используемого в Unix.
-
Modulequopri -
Поддержка кодирования quoted-printable, используемого в сообщениях электронной почты MIME.
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/binascii.html