Существуют ли хорошие решения Python, такие как BinData от Ruby для чтения пользовательских двоичных форматов файлов / потоков? Если нет, то каков предпочтительный способ сделать это в Python, кроме использования struct module?
У меня есть бинарный файл, в котором хранятся «записи» событий. Записи имеют динамический размер, поэтому я должен прочитать первые несколько байтов каждой записи, чтобы определить длину и тип записи. Различные типы записей будут иметь разную структуру байтов. Например, запись типа «предупреждение» может содержать три 4-байтовых числа, за которыми следует 128-байтовое значение, тогда как запись типа «информация» может иметь только пять 4-байтовых числа.
Было бы неплохо определить различные типы записей и их структуры таким образом, чтобы я мог просто передать двоичный двоичный объект чему-либо и обработать остальное (генерация объекта и т. Д.). Короче говоря, ваши определяющие шаблоны / карты о том, как интерпретировать двоичные данные.