python在标准库中有打包/解包,可用于解释二进制数据并将它们映射到结构
请参阅http://docs.python.org/tutorial/stdlib2.html中的 "11.3.使用二进制数据记录布局"
或者http://docs.python.org/library/struct.html
你尝试过bitstring模块吗?(完全披露:我写了).
它旨在使二进制数据的构造和解析尽可能简单.看看几个例子,看看它是否像你需要的那样.
该片段对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')
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2071 次 |
| 最近记录: |