Bei einem Hexadezimalwert von 0x183C6 möchte ich den entsprechenden Byte-Wert mit genau 3 Bytes schreiben. Ich weiß, dass struct dies zu 4 Bytes tun würde, aber meine Einschränkungen sind zu 3 Bytes.Wie packst du drei Bytes in eine Python-Struktur?
So
>>> val = 0x183c6
>>> struct.pack('>L', val)
'\x00\x01\x83\xc6'
ist groß, aber ich will nur:
'\x01\x83\xc6'
Ich konnte Prozess posten und es nach der Tat abzustreifen, ich könnte es brechen und setzen jedes einzelne Byte in ein bytearray(), oder vielleicht ein bisschen verschieben, aber ich frage mich, ob es eine einfachere Möglichkeit gibt, dies innerhalb der Struktur ohne Nachbearbeitung zu tun.
Werfen Sie einen Blick auf diese http://stackoverflow.com/questions/34794640/python-struct-pack-pack-mehrere-data-in-a-list-oder-a-tuple – Hans