2013-06-27 40 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()) 
相关问题