binascii模块
简介
binascii模块包含很多在二进制和ASCII编码的二进制表示转换的方法。通常情况不会直接使用这些功能,而是使用像UU,base64编码,或BinHex封装模块。 binascii模块包含更高级别的模块使用的,用C语言编写的低级高效功能。
包含的函数
函数 |
描述 |
a2b_uu(string) |
将以ascii编码的一行数据转化为二进制,并且返回二进制数据. |
b2a_uu(data) |
将二进制数据转化为一行以ascii编码的字符,date的最大长度为45. |
a2b_base64(string) |
将一块base64的数据转换为二进制数据,并返回该二进制数据 |
b2a_base64(string) |
与上面相反 |
a2b_qp(string[, header]) |
quoted-printable data->bin,并返回 |
b2a_qp(data[, quotetabs, istext, header]) |
与上面相反 |
a2b_hqx(string) |
binhex4格式化的ASCII数据转换为二进制,没有做RLE解压. |
b2a_hqx(data) |
与上相反 |
rledecode_hqx(data) |
按照binhex4标准,对data执行RLE解压 |
rlecode_hqx(data) |
对data执行binhex方式的压缩,并返回结果 |
crc_hqx(data, crc) |
计算data的binhex4的crc值 |
crc32(data[, crc]) |
根据crc,计算crc32(32位检验和数据,然后将结果&0xffffffff(为了在所有Python版本中生成相同的结果,具体不清楚,求指导…) |
b2a_hex(data) |
返回二进制数据的16进制的表现形式 |
a2b_hex(data) |
与上面相反 |
hexlify(data) |
返回二进制数据的16进制的表现形式 |
unhexlify(hexstr) |
与上面相反 |
相关内置函数
- chr():把一个整形转换成ASCII码表中对应的单个字符
- ord():把ASCII码表中的字符转换成对应的整形
- hex():把十进制转换成16进制字符
- oct():把十进制转换成八进制字符
- bin():把十进制整形转换成二进制字符
使用示例
import binascii
a = b'Jet'
# 先把worker转换成二进制数据然后在用十六进制表示
b = binascii.b2a_hex(a)
print(b)
# 与b2a_hex相反
print(binascii.a2b_hex(b))
# 这个功能和b2a_hex()一样
c = binascii.hexlify(a)
print(c)
# 这个功能和a2b_hex()一样
print(binascii.unhexlify(c))
运行结果:
b'4a6574'
b'Jet'
b'4a6574'
b'Jet'