2

我有以下字符串:

"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)

但这太可怕了。任何好的提示如何有效地解决这个问题?

4

2 回答 2

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')
于 2013-06-27T07:58:23.467 回答
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())
于 2013-06-27T08:16:36.520 回答