1

我在Python中实现了一个简单的文件查找和读取:

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

我结束了

>>>byte
'\xe0\x00\x00\x00'

这是预期的结果,但我需要将其用作没有转义的十六进制值以进行进一步计算。

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

4

3 回答 3

1

使用encode('hex')

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

# convert it to int
>>> int(byte.encode('hex'), 16)
3758096384
于 2012-11-09T11:21:43.763 回答
0

您可以使用 byte.encode('hex') 来获取十六进制值。

于 2012-11-09T11:18:05.953 回答
0

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

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

输出:

e0000000
于 2012-11-09T11:42:16.427 回答