将字符串编码为十六进制字节

时间:2014-11-23 19:26:08

标签: python python-2.7

我有一个字符串' 123456ffffffff'。我如何获得以下

[0x12, 0x34, 0x56, 0xff, 0xff, 0xff, 0xff]

输入字符串仅包含数字。输出可以是bytearray或简单的数组

1 个答案:

答案 0 :(得分:0)

如果您不关心3.x兼容性,那么:

s = '123456ffffffff'
result = list(bytearray(s.decode('hex')))
# [18, 52, 86, 255, 255, 255, 255]

对于3.x,为了兼容性,最好使用unhexlify

from binascii import unhexlify
result = list(bytearray(unhexlify(s)))

因此,如果您不需要bytearray任何内容,最终可能会:

result = [ord(ch) for ch in unhexlify(s)]
相关问题