java版本很好 - MINA。
有一次我听说python有类似的东西。但无法提醒。
编辑: 更具体一点,我想有一个工具,可以帮助我为一些二进制流创建一个编码。
EDIT2: 我想在这里列出解决方案(感谢Scott的相关主题) 按顺序列出我使用它。
答案 0 :(得分:5)
python在标准库中有打包/解包,可以用来解释二进制数据并将它们映射到结构
请在此处查看“11.3。使用二进制数据记录布局”http://docs.python.org/tutorial/stdlib2.html
答案 1 :(得分:5)
您是否尝试过bitstring模块? (完全披露:我写了)。
它旨在使二进制数据的构造和解析尽可能简单。看一下a few examples,看看它是否与你需要的一样。
此片段对H.264视频文件进行了一些解析:
from bitstring import ConstBitStream
s = ConstBitStream(filename='somefile.h264')
profile_idc = s.read('uint:8')
# Multiple reads in one go returns a list:
constraint_flags = s.readlist('4*uint:1')
reserved_zero_4bits = s.read('bin:4')
level_idc = s.read('uint:8')
seq_parameter_set_id = s.read('ue')
if profile_idc in [100, 110, 122, 244, 44, 83, 86]:
chroma_format_idc = s.read('ue')
if chroma_format_idc == 3:
separate_colour_plane_flag = s.read('uint:1')
bit_depth_luma_minus8 = s.read('ue')
bit_depth_chroma_minus8 = s.read('ue')
...