Python 2.4和2.4.4在struct.unpack和win/lin中的问题
我在一台运行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的版本不同,或者是系统的问题吗?
1 个回答
4
使用 I
格式代码,而不是 L
。
在你的Linux机器上,L
的长度不是 H
的两倍,而是四倍——它是8个字节(64位),而 H
只有4个字节(32位)。
I
在两者上都是4个字节(32位)。
编辑:确保阅读eryksun的评论。