2016-12-25 79 views
1

这种包装可以正常工作:Python的十六进制地址从string

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

这不:

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

如何使这项工作? 我尝试了很多binascii库的方法,但我似乎无法弄清楚。

回答

1

您可以使用literal_eval包装它之前评估字符串作为十六进制数字:

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

packed 
# 'O:\x02|' 
+0

谢谢。那正是我正在寻找的。 –

1

将其转换为一个整数:

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