确定python struct / pack fmt字符串中的元素数量?
作者:互联网
使用python struct module时可以指定一个格式字符串,声明如何解释二进制数据:
>>> from struct import *
>>> fmt = 'hhl'
>>> values = [1,2,3]
>>> blob = pack(fmt, values)
可以很容易地计算存储该格式实例所需的字节数:
>>> calcsize(fmt)
检索变量数量的最佳方法是什么?需要“填充”格式?基本上,这将预先告诉上面示例中执行pack()的’values’数组应该有多大.
>>> calcentries(fmt)
3
有这样的事吗?
解决方法:
我担心struct API中没有这样的函数,但您可以自己定义它而无需解析格式字符串:
def calcentries(fmt):
return len(struct.unpack(fmt, '\0' * struct.calcsize(fmt)))
标签:python,struct,binary-data 来源: https://codeday.me/bug/20190521/1148975.html