Python 2.7 эквивалент встроенного метода int.from_bytes

Я пытаюсь сделать мой проект совместимым с python2.7 и 3, а python 3 имеет встроенный метод int.from_bytes. Имеет ли эквивалент в python 2.7 или, вернее, лучший способ сделать этот код совместимым с 2.7 и 3.

>>> int.from_bytes(b"f483", byteorder="big")
1714698291

Ответ 1

Вы можете рассматривать его как кодировку (специфичный для Python 2):

>>> int('f483'.encode('hex'), 16)
1714698291

Или в Python 2 и Python 3:

>>> int(codecs.encode(b'f483', 'hex'), 16)
1714698291

Преимущество заключается в том, что строка не ограничивается предположением о конкретном размере. Недостатком является отсутствие знака.

Ответ 3

Используйте модуль struct, чтобы распаковать байты в целые числа.

import struct
>>> struct.unpack("<L", "y\xcc\xa6\xbb")[0]
3148270713L

Ответ 4

> import binascii

> barray = bytearray([0xAB, 0xCD, 0xEF])
> n = int(binascii.hexlify(barray), 16)
> print("0x%02X" % n)

0xABCDEF