it-swarm.com.de

Wie erstelle ich ein python bytes Objekt aus einem langen Hex-String?

Ich habe eine lange Folge von Hexadezimalziffern in einer Zeichenfolge, z

000000000000484240FA063DE5D0B744ADBED63A81FAEA390000C8428640A43D5005BD44

nur viel länger, mehrere Kilobyte. Gibt es eine integrierte Möglichkeit, dies in ein Byte-Objekt in python 2.6/3 zu konvertieren?

71
recursive

Funktioniert in Python 2.7 und höher, einschließlich Python3:

result = bytearray.fromhex('deadbeef')

Hinweis: Es scheint einen Fehler mit der Funktion bytearray.fromhex() in Python 2.6 zu geben. In der Dokumentation zu python.org wird angegeben, dass die Funktion einen String akzeptiert als Argument, aber wenn angewendet, wird der folgende Fehler ausgegeben:

>>> bytearray.fromhex('B9 01EF')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: fromhex() argument 1 must be unicode, not str`
69
Jim Garrison
result = bytes.fromhex(some_hex_string)
52
vili

Sie können dies mit dem Hex-Codec tun. dh:

>>> s='000000000000484240FA063DE5D0B744ADBED63A81FAEA390000C8428640A43D5005BD44'
>>> s.decode('hex')
'\x00\x00\x00\x00\x00\[email protected]\xfa\x06=\xe5\xd0\xb7D\xad\xbe\xd6:\x81\xfa\xea9\x00\x00\xc8B\[email protected]\xa4=P\x05\xbdD'
40
Brian

Probieren Sie das binascii-Modul

from binascii import unhexlify
b = unhexlify(myhexstr)
35
Crescent Fresh
import binascii

binascii.a2b_hex(hex_string)

So habe ich es gemacht.

1
JustPlayin