如何在Python中获取未转义的hex值

2024-04-18 14:02:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我实现了一个简单的文件查找并读入Python

>>>f = open("<filepath>", "rb")
>>>f.seek(0x20) #offset 0x20
>>>byte=f.read(4) #4 byte space

我最后

^{pr2}$

这是预期的结果,但我需要使用它作为一个十六进制值,没有转义符来进行进一步的计算。在

如何将这样的字符串转换为未转换的十六进制值?(在上面的示例中,'\xe0\x00\x00\x00'应转换为'e000000'或'0xe000000'。)


Tags: 文件字符串示例readseekspaceopenbyte
3条回答

你可以利用字节编码('hex')以获取十六进制值。在

使用encode('hex')

>>> byte.encode('hex')
'e0000000'

# convert it to int
>>> int(byte.encode('hex'), 16)
3758096384

您可以使用struct模块将字节解压为一个数字,然后按照您希望的方式格式化。在

inport struct
print '{:08x}'.format(struct.unpack('>I', byte)[0])

输出:

^{pr2}$

相关问题 更多 >