1 回答

TA贡献1719条经验 获得超6个赞
用这个:
title,args,flt1,flt2,flt3,flt4 = struct.unpack('>32s8sdddd', data)
由于您对结构一无所知,因此这是基于以下猜测:
该
title
字段是一个最长为 32 个字节的字符串,因为它是一个文本字符串并且第 32 个字节始终是0
.该
args
字段是一个最长为 8 个字节的字符串,因为这是您假设时剩下的……四个“浮点数”中的每一个都是 8 个字节长,因此,从技术上讲,一个
double float
. 最后 8 个字节总是0
. 这是一个有效的双数(0
实际上);它们之前的 8 个字节都是 big-endian 格式的有效浮点数,这使得 2 个有效浮点数。因此,向后计数,另外 16 个零必须是其他 2 个值,剩下的几个字节必须属于该args
字段。
unpack
在提供的数据上运行会给你这个结果:
b'Person0/elements/alpha_absolute\x00' b',dddd\x00\x00\x00' 0.0 0.0 0.1066905392564757 0.0
b'Person0/elements/alpha_absolute\x00' b',dddd\x00\x00\x00' 0.0 0.0 0.10668132073594472 0.0
b'Person0/elements/alpha_absolute\x00' b',dddd\x00\x00\x00' 0.0 0.0 0.10571479478158681 0.0
b'Person0/elements/alpha_absolute\x00' b',dddd\x00\x00\x00' 0.0 0.0 0.10315484049525485 0.0
b'Person0/elements/alpha_absolute\x00' b',dddd\x00\x00\x00' 0.0 0.0 0.09594104835265774 0.0
唯一值得注意的是,从四个浮动项目中,似乎只有一个被实际使用。
添加回答
举报