如何解决struct.error:当我想使用struct.pack时,struct格式的char不好
我想打包我的数据以通过套接字发送它。
我做到了。
sensor = b'cam'
msg = struct.pack('3s >I >I',sensor,len(channel),len(inf_bytes)) + channel + inf_bytes ```
And the I got: struct.error: bad char in struct format
Could you tell me where I am wrong?
解决方法
仅格式字符串中的第一个字符可以是>,以使用big-endian:
>>> struct.pack('3s>I>I',b'A',2,3)
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
struct.error: bad char in struct format
>>> struct.pack('>3sII',3)
b'A\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03'
医生说:(强调我)
默认情况下,C类型以计算机的本机格式和字节顺序表示,并在必要时通过跳过填充字节来正确对齐(根据C编译器使用的规则)。 另外,根据下表,格式字符串的第一个字符可用于指示打包数据的字节顺序,大小和对齐方式:
在https://docs.python.org/3/library/struct.html#struct-format-strings
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。