【问题标题】:Python creating an array from hex bytesPython从十六进制字节创建一个数组
【发布时间】:2013-06-24 15:07:08
【问题描述】:

我有以下字符串:

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

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

【问题讨论】:

    标签: python arrays string hex


    【解决方案1】:
    '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')
    

    【讨论】:

      【解决方案2】:

      您可以解码替换所有空格的字符串

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-08
        • 1970-01-01
        • 2018-02-28
        • 2023-03-14
        • 1970-01-01
        • 2022-12-12
        相关资源
        最近更新 更多