32位/64位系统上的二进制文件?

2024-04-23 08:43:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pythonstruct模块创建自定义二进制文件。在

文件本身具有以下格式:

4 bytes(整数) 1 byte(无符号字符) 4 bytes(浮点数)

4 bytes(整数) 1 byte(无符号字符) 4 bytes(浮点数)

。。。。。。。。。。。。。。。。。。。。。。。。。。(100000条此类线路

4 bytes(整数) 1 byte(无符号字符) 4 bytes(浮点数)


目前,我正在使用一台32位机器来创建这些自定义二进制文件。我很快就打算改用64位机器。在

我能用两台机器读/写相同的文件吗?或者我应该期待兼容性问题吗?在

(我将同时使用Ubuntu Linux)


Tags: 模块文件机器bytesubuntulinux格式二进制
3条回答

你要担心的不仅仅是32位与64位。你所说的大类叫做串行化。在

看看marshal和/或pickle模块。在

只要struct格式字符串使用“标准大小和对齐”(<或{})而不是“原生大小和对齐”(@),就可以跨平台使用文件。在

http://docs.python.org/library/struct.html#byte-order-size-and-alignment

By default, C types are represented in the machine’s native format and byte order, and properly aligned by skipping pad bytes if necessary (according to the rules used by the C compiler).

所以这取决于你的代码是否可移植。在

相关问题 更多 >