python - 确定 python struct/pack fmt 字符串中的元素数量?

标签 python struct binary-data

当使用 python struct 模块时,可以指定声明二进制数据应如何解释的格式字符串:

>>> from struct import *
>>> fmt = 'hhl'
>>> values = [1,2,3]
>>> blob = pack(fmt, values)

很容易计算出存储该格式实例所需的字节数:

>>> calcsize(fmt)

检索“填充”格式所需的变量数量的最佳方法是什么?基本上这会提前告诉“值”数组应该有多大来执行上面示例中的 pack()。

>>> calcentries(fmt)
3

有这样的事情吗?

最佳答案

struct API 中恐怕没有这样的函数,但是你可以自己定义它而不用解析格式字符串:

def calcentries(fmt):
    return len(struct.unpack(fmt, '\0' * struct.calcsize(fmt)))

关于python - 确定 python struct/pack fmt 字符串中的元素数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5289069/

相关文章:

python - 是否可以从 Django 中的 concat 内部获取显示名称?

c - 在 C 中分配内存困惑

clojure - 如何在Clojure中解析二进制文件

java - 二进制数据存储方案(保存用户上传的文件)

c - 二进制文件的 fseek 行为

Python discord bot - 从未等待过协程

python - SciPy 中使用截断法线的混合模型拟合(双峰?)。 python 3

c - 多级反馈队列初始化的结构

Python:struct.unpack 的生成器版本

python - 将 lambda 函数应用于列