我正在尝试一个示例,该示例几乎是Python库参考的2.5.2版文档的函数“ a2b_base64()”的一部分,该函数是“ binascii”模块的一部分。我正在尝试将十六进制数转换为其二进制值。最终,我需要将整个十六进制文件转换为二进制文件。

该函数从技术上来说是一个字符串,但是我得到的错误是“ NameError:未定义名称'a2b_base64'”。知道为什么失败了吗?我希望我可以使用更现代的Python版本并避免使用a2b_base64()函数,但不能这样做。谢谢。

import binascii
num = a2b_base64("04")
print num

最佳答案

在Python中,每个模块都有自己的名称空间。默认情况下,在该模块中调用方法时,需要包括模块名称:

import binascii
num = binascii.a2b_base64("04")
print num


请注意,a2b_base64将一串以Base64编码的二进制数据转换为原始二进制格式,这听起来并不是您真正想要的。要将十六进制数字字符串转换为十六进制数据字符串,请使用a2b_hex

>>> import binascii
>>> binascii.a2b_hex("04")
'\x04'

09-16 23:09