2011-06-05 165 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

相關問題