11

作为一名自学成才的 Python 爱好者,我将如何学习使用标准格式导入和导出二进制文件?

我想实现一个脚本,该脚本采用 ePub 电子书(zip 中的 XHTML + CSS)并将其转换为 mobipocket(Palmdoc)格式,以允许 Amazon Kindle 阅读它(作为我更大项目的一部分)我正在工作)。

已经有一个很棒的用于管理电子书库的开源项目:Calibre。我想尝试自己将其作为学习/自学练习来实施。我开始查看他们的python 源代码,并意识到我不知道发生了什么。当然,在任何事情上自学的最大危险是不知道你不知道什么。

在这种情况下,我知道我对这些二进制文件以及如何在 python 代码(struct?)中使用它们知之甚少。但我认为我可能总体上缺少很多关于二进制文件的知识,我想要一些帮助来理解如何使用它们。 这是 mobi/palmdoc 标头的详细概述。谢谢!

编辑:没问题,好点!您对如何获得使用二进制文件的基本知识有任何提示吗?特定于 Python 的方法会有所帮助,但其他方法也可能有用。

TOM:作为问题编辑,添加了介绍/更好的标题

4

3 回答 3

10

正如您在问题中指出的那样,您可能应该从struct模块开始,当然,将文件作为二进制文件打开。

基本上,您只需从文件的开头开始,然后将其逐个分开。这是一个麻烦,但不是一个大问题。如果文件被压缩或加密,事情会变得更加困难。如果您从一个您知道其内容的文件开始,这样您就不会一直在猜测,这会很有帮助。

尝试一下,也许你会提出更具体的问题。

于 2009-06-09T02:19:37.543 回答
2

如果你想构造和分析二进制文件,struct 模块会给你基本的工具,但它不是很友好,特别是如果你想查看不是整数字节的东西。

有一些模块可以提供帮助,例如BitVectorbitarraybitstring。(我喜欢bitstring,但我写了它,所以可能有偏见)。

对于解析二进制格式,hachoir模块非常好,但我怀疑它对于您当前的需求来说太高级了。

于 2009-06-09T14:08:27.377 回答
0

为了自学使用二进制文件的 python 工具, 这会让你开始。也很有趣。带有二进制文件、zip、图像的练习......还有更多。

于 2009-06-09T13:50:12.843 回答