123 votes

Comment créer python octets de l'objet de la longue chaîne hexadécimale?

J'ai une longue séquence de chiffres hexadécimaux, dans une chaîne de caractères, tels que

000000000000484240FA063DE5D0B744ADBED63A81FAEA390000C8428640A43D5005BD44

ce n'est que beaucoup plus longues, de plusieurs kilo-octets. Est-il un builtin façon de convertir cette octets de l'objet en python 2.6/3?

134voto

vili Points 574
result = bytes.fromhex(some_hex_string)

121voto

Jim Garrison Points 864

Fonctionne en Python 2.6 et supérieur (y compris python3):

result = bytearray.fromhex('deadbeef')

45voto

Brian Points 48423

Vous pouvez faire cela avec le hex codec. c'est à dire:

>>> 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'

39voto

Crescent Fresh Points 54070

Essayez le module binascii

from binascii import unhexlify
b = unhexlify(myhexstr)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X