Я немного разобрался со struct:
- Строка с форматом должна быть в бинарном виде, поэтому всегда пишется b в начале
- Потом в кавычках идёт сам формат
- Формат начинается с < - это порядок байтов (можно не обращать внимание и всегда писать <)
- Дальше идёт само описание типов данных. Вот тут есть табличка с ними - https://docs.python.org/3.5/library/struct.html
Пример:
AERMagic = struct.Struct(b'<4s2H')