У меня есть двоичный файл, который я читаю, где некоторые двухбайтовые значения хранятся в «обратном» порядке байтов (little endian?), Например.
1D 00 13 00 27 00 3B 00 45 00 31 00 4F
Исходная программа, создавшая эти значения, хранит их внутри как шорты. Эти значения должны соответствовать: 29, 19, 39, 59, 69, 49, 79. Я пытаюсь прочитать эти значения с помощью python 2.6.5 (хотя это, вероятно, будет работать в гораздо более старых системах, например, 2.3 и 2.4). .
Я пробовал использовать
val1, val2, val3, val4, val5, val6, val7 = struct.unpack("1h 1h 1h 1h 1h 1h 1h", data)
, и, конечно же, все значения получаются неверными:
7427
4864
9984
15104
17664
12544
20224
Посмотрев документацию по структуре, я подумал, что смогу использовать что-то вроде
val1, ... = struct.unpack("!h !h ...
, но когда тестирование, я получил только
struct.error: bad char in struct format
Как мне распаковать эти значения с правильным порядком байтов? Я застрял в чтении двух байтов по отдельности, а затем снова собираю их в коде Python?