如何确定Python结构/打包格式字符串中的元素数量?
在使用Python的struct模块时,你可以指定一个格式字符串,这个字符串告诉程序如何理解二进制数据:
>>> from struct import *
>>> fmt = 'hhl'
>>> values = [1,2,3]
>>> blob = pack(fmt, values)
你可以很容易地计算出存储这种格式的实例需要多少字节:
>>> calcsize(fmt)
那么,获取需要多少个变量来“填充”这个格式的最佳方法是什么呢?基本上,这样可以提前知道“值”数组应该有多大,以便在上面的例子中执行pack()操作。
>>> calcentries(fmt)
3
有没有这样的东西呢?
1 个回答
5
我怕在struct
这个API里没有这样的功能,不过你可以自己定义一个,而不需要解析格式字符串:
def calcentries(fmt):
return len(struct.unpack(fmt, '\0' * struct.calcsize(fmt)))