Если вам необходимо обрабатывать данные «поразрядно», тогда вам может помочь модуль bitstring
. Он также может иметь дело с порядком байтов между платформами (по крайней мере, в последней сборке транка - она будет выпущена в ближайшие дни).
Модуль struct
является лучшим стандартным методом борьбы с порядком байтов между платформами. Например, это упаковывает и распаковывает целые числа 1, 2, 3 в две «шорты» и одну «длинную» (2 и 4 байта на большинстве платформ) с использованием собственного порядка байтов:
>>> from struct import *
>>> pack('hhl', 1, 2, 3)
'\x00\x01\x00\x02\x00\x00\x00\x03'
>>> unpack('hhl', '\x00\x01\x00\x02\x00\x00\x00\x03')
(1, 2, 3)
Для проверки порядкового номера платформы программно вы можете использовать
>>> import sys
>>> sys.byteorder
, который либо вернет "big"
, либо "little"
.