python中的二进制文件IO,从哪里开始?

时间:2009-06-09 00:25:36

标签: python binary io epub mobipocket

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

我想实现一个脚本,它将ePub电子书(XHTML + CSS压缩成zip)并将其转换为mobipocket(Palmdoc)格式,以便让亚马逊Kindle读取它(作为更大项目的一部分)我正在努力)

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

在这种情况下,我知道我不太了解这些二进制文件以及如何在python代码中使用它们(struct?)。但我想我可能在一般情况下遗漏了很多关于二进制文件的知识,我想帮助理解如何使用它们。 Here is a detailed overview的mobi / palmdoc标题。谢谢!

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

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

3 个答案:

答案 0 :(得分:10)

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

基本上你只是从文件的开头开始,一块一块地把它分开。这是一个麻烦,但不是一个大问题。如果文件被压缩或加密,事情会变得更加困难。如果你从一个你知道其内容的文件开始,这是有帮助的,所以你不是一直在猜测。

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

答案 1 :(得分:2)

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

有一些模块可以提供帮助,例如BitVectorbitarraybitstring。 (我赞成bitstring,但我写了它,因此可能有偏见)。

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

答案 2 :(得分:0)

为了教你自己使用二进制文件的python工具, this will get you going。也很有趣。练习二进制文件,拉链,图像......还有更多。