Какой самый питоновский способ определения порядка байтов? - PullRequest
36 голосов
/ 28 августа 2009

Я пытаюсь найти лучший способ выяснить, является ли машина, на которой работает мой код, порядком байтов или порядком байтов. У меня есть решение, которое работает (хотя я не тестировал его на машине с прямым порядком байтов), но оно кажется немного неуклюжим:

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

Это просто сравнение "нативного" двухбайтового пакета с пакетом с прямым порядком байтов. Есть ли более красивый способ?

1 Ответ

80 голосов
/ 28 августа 2009

Ответ в модуле sys :

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

Конечно, в зависимости от вашей машины он может вернуть 'big'. Ваш метод, конечно, тоже должен работать.

...