2009-06-09 48 views
11

作爲一個自學成才的python愛好者,我將如何學習使用標準格式導入和導出二進制文件?python中的二進制文件IO,從哪裏開始?

我想實現一個腳本,它將ePub電子書(XHTML + CSS中的zip)轉換爲mobipocket(Palmdoc)格式,以便Amazon Kindle可以讀取它(作爲更大我正在研究的項目)。

已經有一個很棒的開源項目管理電子書庫:Calibre。我想嘗試自己實施這個學習/自我教學練習。我開始看着他們的python source code,並意識到我不知道發生了什麼。當然,在任何事情上自學的危險都不知道你不知道什麼。

在這種情況下,我知道我對這些二進制文件以及如何在python代碼(struct?)中使用它們不太瞭解。但我想我可能會錯過大量關於二進制文件的知識,我希望能夠幫助您理解如何使用它們。 mobi/palmdoc頭文件的Here is a detailed overview。謝謝!

編輯:沒問題,好點!你有關於如何獲得使用二進制文件的基本知識的任何提示?特定於Python的會很有幫助,但其他方法也可能有用。

TOM:編輯成問題,添加片頭/更好的標題

+4

那麼你確切的問題是什麼? – NicDumZ 2009-06-09 00:42:33

回答

10

你或許應該與struct模塊開始,正如你指出你的問題,當然,打開該文件爲二進制。

基本上你只是從文件的開始處開始一片一片地分開。這是一個麻煩,但不是一個大問題。如果文件被壓縮或加密,事情會變得更加困難。如果你從一個你知道內容的文件開始,這樣會很有幫助,所以你不會一直在猜測。

嘗試一下,也許你會發展更具體的問題。

0

爲了教你自己使用二進制文件的python工具, this will get you going。也很有趣。與二進制文件,拉鍊,圖像練習...更多。

2

如果你想構造和分析二進制文件,結構模塊會給你基本的工具,但它不是非常友好,特別是如果你想看看不是整數個字節的東西。

有幾個模塊可以幫助您,例如BitVector,​​和bitstring。 (我贊成bitstring,但我寫了它,所以可能有偏見)。

對於解析二進制格式,hachoir模塊非常好,但我懷疑它對目前的需求來說太高級了。