Frage

Ich habe eine lange Folge von Hex-Ziffern in einem String, wie

  

000000000000484240FA063DE5D0B744ADBED63A81FAEA390000C8428640A43D5005BD44

nur viel länger, mehr Kilobyte. Gibt es eine eingebaute Möglichkeit, dies zu einem Byte-Objekt in Python zu konvertieren 2.6 / 3?

War es hilfreich?

Lösung

Werke in Python 2.7 und höher, einschließlich python3:

result = bytearray.fromhex('deadbeef')

Hinweis: Es scheint in Python 2.6 ein Fehler mit der bytearray.fromhex() Funktion. Die python.org Dokumentation besagt, dass die Funktion eine Zeichenfolge als Argument akzeptiert, aber bei der Anwendung, wird der folgende Fehler ausgelöst:

>>> bytearray.fromhex('B9 01EF')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: fromhex() argument 1 must be unicode, not str`

Andere Tipps

result = bytes.fromhex(some_hex_string)

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

>>> s='000000000000484240FA063DE5D0B744ADBED63A81FAEA390000C8428640A43D5005BD44'
>>> s.decode('hex')
'\x00\x00\x00\x00\x00\x00HB@\xfa\x06=\xe5\xd0\xb7D\xad\xbe\xd6:\x81\xfa\xea9\x00\x00\xc8B\x86@\xa4=P\x05\xbdD'

Versuchen Sie die binascii Modul

from binascii import unhexlify
b = unhexlify(myhexstr)
import binascii

binascii.b2a_hex(obj)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top