2012-11-09 67 views
1

十六進制值轉義我實現了一個簡單的文件查找和Python閱讀:如何獲得逃脫在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

你可以使用byte.encode('hex')來獲得十六進制值。

1

使用encode('hex')

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

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

您可以使用struct模塊字節解壓到一個號碼,然後格式化的方式,你的願望。

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

輸出:

e0000000