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


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

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

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

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

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

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


6591
2019-05-30 00:12:50


起源

那么你的确切问题是什么? - Nicolas Dumazet


答案:


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

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

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


10





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

有一些模块可以提供帮助,例如 位向量bitarray 和 比特串。 (我赞成 比特串,但我写了它,所以可能有偏见)。

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


2





为了教你自己使用二进制文件的python工具, 这会让你去。也很有趣。用二进制文件,拉链,图像练习......还有更多。


0