dan*_*tje 5 python struct binary-data
使用python struct module时可以指定一个格式字符串,声明如何解释二进制数据:
>>> from struct import *
>>> fmt = 'hhl'
>>> values = [1,2,3]
>>> blob = pack(fmt, values)
Run Code Online (Sandbox Code Playgroud)
可以很容易地计算存储该格式实例所需的字节数:
>>> calcsize(fmt)
Run Code Online (Sandbox Code Playgroud)
检索变量数量的最佳方法是什么?需要"填充"格式?基本上,这将预先告诉上面示例中执行pack()的'values'数组应该有多大.
>>> calcentries(fmt)
3
Run Code Online (Sandbox Code Playgroud)
有这样的事吗?
我担心structAPI中没有这样的功能,但您可以自己定义它而无需解析格式字符串:
def calcentries(fmt):
return len(struct.unpack(fmt, '\0' * struct.calcsize(fmt)))
Run Code Online (Sandbox Code Playgroud)