2016-12-25 3 views
1

Diese Verpackung korrekt funktioniert:Python hexadezimale Adresse von String

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

Dies gilt nicht:

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

Wie kann ich diese Arbeit zu machen? Ich habe viele Methoden aus der binascii-Bibliothek ausprobiert, aber ich kann es nicht herausfinden.

Antwort

1

können Sie literal_eval verwenden, um die Zeichenfolge als Hex-Zahl zu bewerten, bevor er Verpackung:

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

packed 
# 'O:\x02|' 
+0

Danke. das war genau das was ich suchte. –

1

in eine ganze Zahl konvertieren es:

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