我在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'。)
答案 0 :(得分:1)
使用encode('hex')
:
>>> byte.encode('hex')
'e0000000'
# convert it to int
>>> int(byte.encode('hex'), 16)
3758096384
答案 1 :(得分:0)
您可以使用byte.encode('hex')来获取十六进制值。
答案 2 :(得分:0)
您可以使用struct
模块将字节解压缩为数字,然后按照您希望的方式格式化。
inport struct
print '{:08x}'.format(struct.unpack('>I', byte)[0])
输出:
e0000000