2011-06-05 130 views
3

我使用python结构模块来创建自定义二进制文件。32位/ 64位系统上的二进制文件?

文件本身具有以下格式:

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

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

..........................(100000这样的行

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


目前,我使用的是32位机器来创建自定义这些二进制文件。我很快计划切换到64位机器

我可以使用两台{32bit/64bit}机器读取/写入相同的文件吗?或者我应该期望兼容性问题?

(我将使用Ubuntu Linux操作系统的两个)

回答

2

只要您的结构格式字符串使用“标准大小和对齐”(<>)而不是“原生大小和对齐”(@),则可以跨平台使用您的文件。

1

你有更多的担心比32位和64位。您正在讨论的广泛类别称为系列化

查看marshal和/或pickle模块。

+0

谢谢。我正在创建自己的格式。如果我可以使用32/64位系统读/写这两个文件 - 为什么我应该担心'marshal'或'pickle'? – user3262424 2011-06-05 18:35:37

+0

如果您关心的只是x86与x86_64,那么您当然可以推出自己的解决方案。但是,如果您使用标准的编组机制 - 担心字节顺序和浮点表示以及字大小 - 您可以确定您的代码将在未来移植到任何系统。你必须写的代码量大致相同;甚至更少。所以问题是,为什么_你不会让你的外部格式得到很好的指定并使用适当的编组? – Nemo 2011-06-05 18:39:53

+0

谢谢,你是对的。 – user3262424 2011-06-05 19:51:15

相关问题