【问题标题】:What's the most Pythonic way of determining endianness?确定字节顺序的最 Pythonic 方式是什么?
【发布时间】:2010-11-23 16:19:41
【问题描述】:

我正在尝试找出最好的方法来确定运行我的代码的机器是大端还是小端。我有一个可行的解决方案(虽然我没有在大端机器上测试过),但它似乎有点笨拙:

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

这只是将“本机”两字节包与小端包进行比较。有没有更漂亮的方法?

【问题讨论】:

  • 为什么需要知道?您的解决方案似乎足够好,但您当然不必知道何时使用“结构”本身?
  • 是的,但我没有使用 struct 模块(也许我应该使用,但我不是我正在修复的代码的原作者)。

标签: python endianness


【解决方案1】:

答案在sys module

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

当然,取决于您的机器,它可能会返回'big'。不过,您的方法当然也应该有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 2019-10-05
    • 1970-01-01
    相关资源
    最近更新 更多