2009-06-09 79 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模块非常好,但我怀疑它对目前的需求来说太高级了。