用于实现二进制文件格式的Python模块?

用于实现二进制文件格式的Python模块?,python,templates,resources,binary,Python,Templates,Resources,Binary,我经常发现自己需要编写代码来与二进制文件格式交互,而这些二进制文件格式没有现成的工具。我正在寻找一种简单的方法来实现结构化二进制格式的读写器——理想情况下,它可以让我使用某种简单的声明格式创建读写器 我已经找到了这个模块,它可以正常工作,但似乎大部分被作者放弃了。我想知道人们是否有其他选择。就我个人而言,我会使用该模块,但在编写时可能会有偏见。例如,在中有一些用于读取/写入二进制格式的简单代码 这是通过二进制格式创建的一种方法: fmt = 'sequence_header_code,

我经常发现自己需要编写代码来与二进制文件格式交互,而这些二进制文件格式没有现成的工具。我正在寻找一种简单的方法来实现结构化二进制格式的读写器——理想情况下,它可以让我使用某种简单的声明格式创建读写器

我已经找到了这个模块,它可以正常工作,但似乎大部分被作者放弃了。我想知道人们是否有其他选择。

就我个人而言,我会使用该模块,但在编写时可能会有偏见。例如,在中有一些用于读取/写入二进制格式的简单代码

这是通过二进制格式创建的一种方法:

fmt = 'sequence_header_code,
       uint:12=horizontal_size_value,
       uint:12=vertical_size_value,
       uint:4=aspect_ratio_information,
       ...
       '
d = {'sequence_header_code': '0x000001b3',
     'horizontal_size_value': 352,
     'vertical_size_value': 288,
     'aspect_ratio_information': 1,
     ...
    }

s = bitstring.pack(fmt, **d)
还有一种方法可以在以后解析它:

>>> s.unpack('bytes:4, 2*uint:12, uint:4')
['\x00\x00\x01\xb3', 352, 288, 1]

看看。

谢谢,我来看看!