1

我需要从 C 结构中解压缩 python 中的信息,通过以下代码进行:

struct.unpack_from('>I', file.read(4))[0]

然后,写回更改的值:

new_value = struct.pack('>I', 008200)
file.write(new_value)

几个例子:008200 返回一个语法错误:无效的令牌。000010 写入:8 000017 写入:15 ​​000017 返回语法错误。

我不知道那是一种什么样的转换。任何形式的帮助都会很棒。

4

1 回答 1

1

这是无效的 python 代码,与 struct 模块无关。在 python 中,以零开头的数字是八进制(以 8 为基数)。因此,python 尝试以八进制解码 008200,但 '8' 无效。假设您想要十进制,请使用 8200。如果您想要十六进制,请使用 0x8200。

于 2013-07-17T13:42:46.197 回答