编程语言
首页 > 编程语言> > 确定python struct / pack fmt字符串中的元素数量?

确定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