Python 2.4和2.4.4在struct.unpack和win/lin中的问题

2 投票
1 回答
879 浏览
提问于 2025-04-17 03:16

我在一台运行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的评论。

撰写回答