struct.unpack 和 win/lin 中 python 2.4 和 2.4.4 的问题
我正在 Linux debian 机器上使用 python 2.4 进行编码。
我的邻居使用 Windows XP 和 python 2.4.4
他可以运行此代码:
w1, w2, w3 = unpack("LLL", pack("LLHH", localtime, ipddr, counter, aid))
但是当我尝试此代码时,我出现此错误:
w1, w2, w3 = unpack("LLL", pack("LLHH", localtime, ipddr, counter, aid))
struct.error: unpack str size does not match format
它可以是 python 的版本还是系统的版本?
i'm coding on a Linux debian machine with python 2.4.
My neighbour with Windows XP and python 2.4.4
He can run this code:
w1, w2, w3 = unpack("LLL", pack("LLHH", localtime, ipddr, counter, aid))
But when i try this code i become this error:
w1, w2, w3 = unpack("LLL", pack("LLHH", localtime, ipddr, counter, aid))
struct.error: unpack str size does not match format
Can it be the Version of python or maybe the system?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
I
格式代码而不是L
。在 Linux 计算机上,
L
的长度不是H
的两倍,而是四倍 - 8 字节(64 位)而不是 4 字节(32 位) 。I
两者均应为 4 字节(32 位)。编辑:请务必阅读 eryksun 的评论。
Use the
I
format code instead ofL
.On your Linux machine,
L
isn't twice as long asH
, it's four times as long -- 8 bytes (64 bits) instead of 4 bytes (32 bits).I
should be 4 bytes (32 bits) on both.Edit: Make sure to read eryksun's comment.