Étant donné une valeur hexadécimale de 0x183C6 Je voudrais écrire sa valeur d'octet correspondante en utilisant exactement 3 octets. Je sais que la structure ferait cela à 4 octets mais mes contraintes sont à 3 octets.Comment empaqueter trois octets dans une structure python?
Alors
>>> val = 0x183c6
>>> struct.pack('>L', val)
'\x00\x01\x83\xc6'
est grand, mais je veux simplement:
'\x01\x83\xc6'
je pouvais poster processus et la bande après le fait, je pourrais le casser et de mettre chaque octet individuel dans un bytearray(), ou peut-être faire un peu de décalage, mais je me demande s'il existe une façon plus simple de le faire dans struct sans post-traitement.
Jetez un oeil à ce http://stackoverflow.com/questions/34794640/python-struct-pack-pack-multiple-data-dans-une-liste-ou-un-tuple – Hans