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

2024-05-16 03:24:10 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

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

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

汤姆:编辑成问题,增加了介绍/更好的标题


Tags: 文件项目方法脚本编辑标准格式二进制
3条回答

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

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

试试看,也许你会提出更具体的问题。

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

有几个模块可以提供帮助,例如BitVectorbitarraybitstring。(我赞成bitstring,但我写的,所以可能有偏见)。

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

为了教会自己使用python工具来处理二进制文件, this will get you going。也很有趣。使用二进制文件,拉链,图像。。。更多。

相关问题 更多 >