这是standard library documentation。
中函数的描述binascii.a2b_hex(hexstr)
返回十六进制字符串hexstr表示的二进制数据。该函数与b2a_hex()的反函数。 hexstr必须包含偶数个十六进制数字(可以是大写或小写),否则会引发TypeError。
但是,以下代码示例打印出Hello World!
import binascii
print binascii.a2b_hex('48656c6c6f20576f726c6421')
为什么print
将二进制数据解释为字符串?到底是怎么回事?
答案 0 :(得分:8)
因为在Python 2中,所有二进制数据都表示为字符串。 str
类型基本上只是一个字节序列。
在Python 3中,基本str
类型是unicode值(Python 2中为unicode()
),Python 2 str
类型已重命名为bytes
,并且a2b_hex
函数输出字节:
>>> import binascii
>>> binascii.a2b_hex('48656c6c6f20576f726c6421')
b'Hello World!'