【问题标题】:Binary file IO in python, where to start?python中的二进制文件IO,从哪里开始?
【发布时间】:2009-06-09 00:25:36
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 那么您的具体问题是什么?

标签: python binary io epub mobipocket


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      为了自学处理二进制文件的 Python 工具, this will get you going。也很有趣。包含二进制文件、zip、图像的练习......还有更多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-11
        相关资源
        最近更新 更多