2013-06-27 39 views
2

我有以下字符串:使用Python創建從十六進制字節數組

"0c a8 f0 d6 02 00 00 00 00 d0 1c d1 10 d2 00 d3 00 d7 01 d4 78 20 ff" 

正如你所看到的,它包含十六進制值,我想把它改造成一個字節數組,使用Python 2.4.4 (不是3.x,所以我沒有有用的bytearray)。根據我的知識實現它的唯一方法是這樣的:

i = [] 
i.append(0x0c) 
i.append(0xa8) 
i.append(0xf0) # ... and so on 
..... 
z = ''.join(chr(c) for c in i) 

但是這太可怕了。任何好的提示如何有效地解決這個問題?

回答

3
'0c a8 f0 d6 02 00 00 00 00 d0 1c d1 10 d2 00 d3 00 d7 01 d4 78 20 ff'.replace(' ', '').decode('hex') 
1

可以解碼的字符串替換所有空格

s = "0c a8 f0 d6 02 00 00 00 00 d0 1c d1 10 d2 00 d3 00 d7 01 d4 78 20 ff" 
x = s.replace(" ", "").decode('hex') 

,或者你可以使用例如發電機聲明

x = ''.join(chr(int(i, 16)) for i in s.split()) 
相關問題