Чтение бинарного файла с учетом структуры данных - PullRequest
0 голосов
/ 29 мая 2018

У меня проблема с правильным чтением содержимого двоичного файла, возможно, из-за неправильной распаковки структуры данных (вот почему я здесь - потому что я не знаю, как распаковать структуру данных, учитывая разныетипы данных).

Документация мне не сильно помогла, она просто привела меня к стандартному списку типов данных и их сокращений, а также к не очень полезной иллюстрации.

Я пытаюсь понять следующий код:

data = struct.unpack('<hlhcl6s10s11s10s2s10schc', b[i:i+66])

, который «должен» соответствовать «последней сделанной цене» в этой структуре данных (прикреплено изображение): ДанныеСтруктура двоичного файла

Я могу понять, что 6, 10 и т. Д. Означают длину символов.Но каково значение «hlhcl» в начале и «chc» в конце.Структура данных содержит «long» (который должен быть просто «h», согласно документации), за которым следует множество символов (которые должны быть записаны как «c6s10s11s10s2s1s10s12s10s12s».

Если вы могли бы мне помочьнапишите правильную последовательность символов, чтобы получить «последнюю цену», это было бы очень полезно. Заранее спасибо.

1 Ответ

0 голосов
/ 29 мая 2018

Если у вас есть двоичные данные под рукой (b, верно?) И вас интересует только одно поле, почему вы не можете просто получить к нему доступ напрямую?

last_traded_price_bytes = b[88:98]

Возможно, вы захотитеперепроверьте эти числа, почти наверняка это началось с 88-го байта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...