2009-06-09 11 views
11

Jako samouk pytonisty, jak mam się nauczyć importować i eksportować pliki binarne przy użyciu standardowych formatów?Plik binarny IO w python, od czego zacząć?

Chciałbym zaimplementować skrypt, który pobiera e-książki ePub (XHTML + CSS w pliku zip) i konwertuje go do formatu mobipocket (Palmdoc), aby umożliwić Amazon Kindle odczytać (jako część większego projekt, nad którym pracuję).

Istnieje już wspaniały projekt open-source do zarządzania bibliotekami ebook: Calibre. Chciałem spróbować wdrożyć to na własną rękę jako ćwiczenie uczenia się/samodzielnego nauczania. Zacząłem patrzeć na ich python source code i zdałem sobie sprawę, że nie mam pojęcia, co się dzieje. Oczywiście wielkim niebezpieczeństwem bycia samoukiem w niczym nie jest wiedza o tym, czego nie wiesz.

W tym przypadku wiem, że nie wiem zbyt wiele o tych plikach binarnych i jak pracować z nimi w kodzie Pythona (struct?). Ale myślę, że prawdopodobnie brakuje mi dużej wiedzy na temat plików binarnych w ogóle i chciałbym, aby niektórzy pomogli zrozumieć, jak z nimi pracować. Here is a detailed overview nagłówków mobi/palmdoc. Dzięki!

Edytuj: Brak pytań, dobry punkt! Czy masz jakieś wskazówki, jak zdobyć podstawową wiedzę na temat pracy z plikami binarnymi? Specyficzna dla Pythona byłaby pomocna, ale inne metody również mogą być przydatne.

TOM: Zmieniano jako pytanie, dodał Intro/lepszy tytuł

+4

jakie jest Twoje dokładne pytanie? – NicDumZ

Odpowiedz

10

Należy prawdopodobnie rozpocznie z modułem struct, jak wskazał w swoim pytaniu, i oczywiście, otwórz plik jako binarny.

Zasadniczo wystarczy zacząć od początku pliku i wybrać kawałek po kawałku. To kłopot, ale nie ogromny problem. Jeśli pliki są skompresowane lub zaszyfrowane, sytuacja może stać się trudniejsza. Przydatne jest, jeśli zaczynasz od pliku, który znasz, więc nie zgadujesz cały czas.

Spróbuj trochę, a może rozwiniesz bardziej szczegółowe pytania.

0

Do nauki narzędzi Pythona, które działają z plikami binarnymi, this will get you going. Zabawa też. Ćwiczenia z plikami binarnymi, zamkami, obrazami ... wiele więcej.

2

Jeśli chcesz konstruować i analizować pliki binarne moduł struct da ci podstawowe narzędzia, ale nie jest bardzo przyjazny, szczególnie jeśli chcesz spojrzeć na rzeczy, które nie są całkowitą liczbą bajtów.

Istnieje kilka modułów, które mogą pomóc, takie jak BitVector, bitarray i bitstring. (Jestem zwolennikiem bitstring, ale napisałem go i może być stronniczy).

Do parsowania formatów binarnych moduł hachoir jest bardzo dobry, ale podejrzewam, że jest zbyt wysoki dla obecnych potrzeb.

Powiązane problemy