2009-08-28 46 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

相关问题