首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用1定义读写文件格式?

如何使用1定义读写文件格式?
EN

Stack Overflow用户
提问于 2011-04-11 08:06:36
回答 2查看 176关注 0票数 2

我想修改快速文件,所以我正在使用quicktime.py,但它只解析信息。它不知道怎么写/修改东西。

在C语言中,结构记录实际上是非常强大的--只需花费一个可读的定义就可以得到4件东西:

  1. 为每个变量定义名称。
  2. 为每个变量定义可序列化的类型和顺序(让我们忽略本讨论中与机器相关的恶作剧)。
  3. 包(写)
  4. 解包(“解析”)

在python中,struct模块可以执行数字2-4,但是您需要做额外的工作,以便使python在1定义(DRY)的基础上为打包和解压缩定义名称。

OTOH ctypes可以执行1-4 (3-4不完全在stdlib中,但它们在使用时更容易修补),并且ctype支持嵌套。

我理解,如果需要更复杂的解析/序列化,就会编写特定的代码。但是,在我看来,我应该能够向python解释一个文件是什么样子的,它可以完成剩下的工作(pack/unpack)。问题是ctype被宣传为“外接函数库”,所以它不“应该”这样做。另一个问题是,对于一个大型文件来说,ctype可能不能很好地工作,因为您只想在哪里查找并更改几个位,尽管我还没有测试过这个。

问题是:在python中读取和修改二进制格式的枯燥方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-11 08:10:18

也许可以试试黑木耳

票数 2
EN

Stack Overflow用户

发布于 2011-04-11 08:50:54

试试构造,它能做你想做的事。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5618471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档