2016-12-25 77 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))