J'ai une longue chaîne Hex qui représente une série de valeurs de différents types. Je souhaite convertir cette chaîne hexagonale en un tableau d'octets afin de pouvoir décaler chaque valeur et la convertir en son type de données approprié.
Réponses
Trop de publicités?Supposons que votre chaîne hexagonale ressemble
>>> hex_string = "deadbeef"
Convertir en chaîne (Python ≤ 2.7) :
>>> hex_data = hex_string.decode("hex")
>>> hex_data
"\xde\xad\xbe\xef"
ou depuis Python 2.7 et Python 3.0 :
>>> bytes.fromhex(hex_string) # Python ≥ 3
b'\xde\xad\xbe\xef'
>>> bytearray.fromhex(hex_string)
bytearray(b'\xde\xad\xbe\xef')
Notez que bytes
est une version immuable de bytearray
.
kugg
Points
311
Bruce
Points
4241
velsim
Points
149
Vous pouvez utiliser le module Codecs dans la bibliothèque Python Standard, c'est-à-dire
import codecs
codecs.decode(hexstring, 'hex_codec')