作为一个自学成才的python爱好者,我该如何学习使用标准格式导入和导出二进制文件呢?
我想实现一个脚本,将ePub电子书(XHTML + CSS压缩)并将其转换为mobipocket (Palmdoc)格式,以便允许Amazon Kindle阅读(作为我正在进行的一个更大项目的一部分)。
已经有一个很棒的开源项目来管理电子书图书馆:Calibre。我想试着把它作为一种学习/自学练习来实现。我开始看他们的python source code,并意识到我不知道发生了什么。当然,在任何事情上自学的最大危险是不知道你不知道的东西。
在这种情况下,我知道我不太了解这些二进制文件以及如何在python代码中使用它们(struct?)。但我想我可能缺少了很多关于二进制文件的一般知识,我想要一些帮助来理解如何使用它们。mobi/palmdoc标头的Here is a detailed overview。谢谢!
编辑:毫无疑问,很好的观点!关于如何获得处理二进制文件的基本知识,您有什么建议吗?特定于Python的将是有帮助的,但其他方法也可能有用。
汤姆:作为问题编辑,增加了介绍/更好的标题
发布于 2009-06-09 02:19:38
您可能应该从struct模块开始,正如您在问题中指出的那样,当然,以二进制文件的形式打开文件。
基本上,您只需从文件的开头开始,一块一块地将其拆分。这是一个麻烦,但不是一个大问题。如果文件被压缩或加密,事情会变得更加困难。如果你从一个你知道其内容的文件开始,这是很有帮助的,这样你就不会一直在猜测。
试一试,也许你会提出更具体的问题。
发布于 2009-06-09 14:08:27
如果你想构造和分析二进制文件,struct模块将为你提供基本的工具,但它不是很友好,特别是如果你想要查看不是整数字节的东西。
有一些模块可以提供帮助,比如BitVector、bitarray和bitstring。(我喜欢bitstring,但它是我写的,所以可能有偏见)。
对于解析二进制格式,hachoir模块非常好,但我怀疑它的级别太高,无法满足您当前的需求。
发布于 2009-06-09 13:50:13
要自学处理二进制文件的python工具,请参阅this will get you going。也很有趣。使用二进制文件,拉链,图像...还有很多。
https://stackoverflow.com/questions/967652
复制相似问题