python 2.7相当于内置方法int.from_bytes

Fab*_*hau 11 python compatibility python-2.7

我正在尝试使我的项目python2.7和3兼容,而python 3具有内置方法int.from_bytes.是否存在python 2.7中的等价物,或者说这个代码2.7和3兼容的最佳方法是什么?

>>> int.from_bytes(b"f483", byteorder="big")
1714698291
Run Code Online (Sandbox Code Playgroud)

daw*_*awg 22

您可以将其视为编码(特定于Python 2):

>>> int('f483'.encode('hex'), 16)
1714698291
Run Code Online (Sandbox Code Playgroud)

或者在Python 2和Python 3中:

>>> int(codecs.encode(b'f483', 'hex'), 16)
1714698291
Run Code Online (Sandbox Code Playgroud)

优点是字符串不限于特定大小的假设.缺点是它是未签名的.


Jor*_*ley 6

struct.unpack(">i","f483")[0]
Run Code Online (Sandbox Code Playgroud)

也许?

>意味着big-endian i意味着签名32位int

另见:https://docs.python.org/2/library/struct.html

  • 它应该是`struct.unpack("> i","f483")[0]`.见[这里](http://repl.it/pIt). (2认同)

San*_*tDG 6

使用该struct模块将您的字节解包为整数。

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