使用Python struct.unpack和1字节变量

dpq*_*dpq 3 python binary parsing

我如何使用struct.unpack()Python中的一些其他函数轻松地将一个字节变量转换为Python整数?现在,它以一种相当蹩脚的方式完成:

file = open("telemetry.dat", "rb").read()
magic = file[0]
int(binascii.hexlify(magic), 16)
Run Code Online (Sandbox Code Playgroud)

还有另一个吗?

jsb*_*eno 7

怎么样ord(my_byte)

或者,如果变量内容是相似的,my_byte == "0xff"或者ff 你可以简单地做int(my_byte, 16)

如果您有十六进制数字流,您可以执行以下操作:

int_bytes = (int(my_bytes[i:i+2], 16) for i in xrange(0, len(my_bytes), 2) ) 
Run Code Online (Sandbox Code Playgroud)

  • 大卫:所以,我的第一个答案是正确答案.字节打印为"\ xff"的事实并不意味着它的内容为四个字节的垃圾邮件 - 它只是在字符串中表示值0xff的python方式.你想要一个lenght-1字符串中的一个字节的数值:python内置给你这个值是"ord",如上所述. (3认同)