Я использую struct pack в Python 3.7.
У меня есть этот заголовок, содержащий 6 uint32 и один аргумент void *.
Я хочу поместить его в двоичный формат. К сожалению, интерфейс, над которым я работаю, поддерживает только big endian. Поэтому мне нужно преобразовать то, что я посылаю.
Но так как формат P не может иметь модифицированного порядка байтов, я всегда получаю структурную ошибку.
Так как я могу переписать это, чтобы избежать этой ошибки.
PS: я не могу удалить пустоту * это обязательное поле моего заголовка
u1 = 0x4569
u2 = 0x1236
u3 = 0x4411
u4 = 0x1236
u5 = 0x9696
point = 0 #(For now)
data = 0x26358974
buffer = struct.pack('5IPI',u1,u2,u3,u4,u5,point,data)
Фактическая выработка
buffer = b'\x69\x45\x00\x00\x36\x12\x00\x00\x11\x44\\x00\x00\x36\x12\x00\x00\x96\x96\\x00\x00\x00\x00\x00\x00\x74\x89\x35\26'
КОГДА я бы хотел:
buffer = b'\x00\x00\45\x69\x00\x00\x12\36\x00\x00\x44\x11\x00\x00\x12\x36\\x00\x00\x96\x96\x00\x00\x00\x00\x26\x35\x89\x74'