【发布时间】:2012-01-17 14:38:16
【问题描述】:
我正在编写一个需要编写二进制文件的程序。 In 包含字符串(键值对)和数字数据(可以是小端或大端)的标题,我正在寻找一种方法来编写在 Python 2.6+ 和 Python 3.2+ 中运行不变的程序。
谁能提出一些最佳做法?此外,在不使用struct.pack 混淆我的程序逻辑的情况下,处理字节顺序的正确方法是什么。我应该继承BufferedWriter吗?
提前致谢。
【问题讨论】:
-
我认为为 Python3 编写代码会更容易,然后看看 Python2 有什么问题。同时为两者写作是一种痛苦(至少对我而言)。
-
如果您将数字数据写入二进制文件,为什么要避免使用
struct.pack?它专为该任务而设计。在将钉子钉入木头时,您会避免使用锤子吗? -
如果你给我们一个指向实际布局的指针会很有帮助,否则你需要说明什么是“字符串”(ASCII,UTF-8,其他东西;长度是如何确定的)什么是“数字数据”(float(大小?),int(有符号/无符号?大小?),其他),每个文件或每个数据项是否有一个字节序标志。
标签: python binary io python-3.x