2009-08-28 63 views
33

我試圖找出解決我的代碼運行的機器是大端還是小端的最佳方式。我有一個可行的解決方案(雖然我沒有測試它大端機器上),但它似乎有點笨重:什麼是確定字節順序的最Pythonic方法?

import struct 
little_endian = (struct.pack('@h', 1) == struct.pack('<h', 1)) 

這是一個「天然」兩字節的包只是比較一點點 - 印度包。有更漂亮的方法嗎?

+0

爲什麼你需要知道?你的解決方案看起來不錯,但你肯定不需要知道什麼時候使用'結構'本身? – u0b34a0f6ae 2009-08-28 09:57:35

+0

確實,但我沒有使用結構模塊(也許我應該,但我不是我正在修復的代碼的原始作者)。 – 2009-08-28 10:34:20

回答

73

答案是在sys module:這取決於你的機器上

>>> import sys 
>>> sys.byteorder 
'little' 

當然它可能會返回'big'。你的方法當然也應該工作。

+4

是在powerpc上它說'>>> sys.byteorder 'big'' – u0b34a0f6ae 2009-08-28 13:23:59

相關問題