Python的十六进制地址从字符串打包

时间:2016-12-25 16:09:39

标签: python hex pack

这是正常的:

packed = struct.pack('<L',0x7c023a4f)

这不是:

address = '0x7c023a4f'
packed = struct.pack('<L',address)

我如何使这项工作? 我从binascii库中尝试了很多方法,但我似乎无法弄明白。

2 个答案:

答案 0 :(得分:1)

在打包之前,您可以使用literal_eval将字符串计算为十六进制数:

from ast import literal_eval
address = '0x7c023a4f'
packed = struct.pack('<L', literal_eval(address))

packed
# 'O:\x02|'

答案 1 :(得分:1)

将其转换为整数:

address = '0x7c023a4f'
packed = struct.pack('<L', int(address, 16))