Вопрос

Как любитель Python-самоучки, как бы я научился импортировать и экспортировать двоичные файлы в стандартных форматах?

Я хотел бы реализовать сценарий, который принимает электронные книги ePub (XHTML + CSS в zip-архиве) и преобразует их в формат mobipocket (Palmdoc), чтобы позволить Amazon Kindle читать их (как часть более крупного проекта, который я работаю над).

Уже существует потрясающий проект с открытым исходным кодом для управления библиотеками электронных книг: Калибр.Я хотел попробовать реализовать это самостоятельно в качестве упражнения для обучения/самообучения.Я начал смотреть на их исходный код Python и понял, что понятия не имею, что происходит.Конечно, большая опасность самообучения в чем-либо заключается в незнании того, чего вы не знаете.

В данном случае я знаю, что мало что знаю об этих двоичных файлах и о том, как с ними работать в коде Python (структура?).Но я думаю, что мне, вероятно, не хватает многих знаний о двоичных файлах в целом, и мне нужна помощь в понимании того, как с ними работать. Вот подробный обзор заголовков mobi/palmdoc.Спасибо!

Редактировать:Без вопросов, хороший момент!Есть ли у вас какие-либо советы о том, как получить базовые знания о работе с двоичными файлами?Было бы полезно использовать особенности Python, но могут быть полезны и другие подходы.

ТОМ: Отредактировано как вопрос, добавлено вступление/улучшено название.

Это было полезно?

Решение

Вероятно, вам следует начать с структура модуль, как вы указали в своем вопросе, и, конечно же, откройте файл как двоичный файл.

По сути, вы просто начинаете с начала файла и разбираете его по частям.Это хлопотно, но не такая уж большая проблема.Если файлы сжаты или зашифрованы, ситуация может усложниться.Будет полезно начать с файла, содержимое которого вам известно, чтобы не гадать все время.

Попробуйте немного, и, возможно, у вас возникнут более конкретные вопросы.

Другие советы

Если вы хотите создавать и анализировать двоичные файлы, модуль struct предоставит вам базовые инструменты, но он не очень удобен, особенно если вы хотите просматривать объекты, размер которых не является целым числом байтов.

Есть несколько модулей, которые могут помочь, например Битвектор, битовый массив и битовая строка.(Я предпочитаю битовая строка, но я это написал и поэтому может быть предвзято).

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

Чтобы изучить инструменты Python, работающие с двоичными файлами,это поможет тебе двигаться вперед.Тоже весело.Упражнения с двоичными файлами, zip-архивами, изображениями...еще больше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top