左键垫十六进制列表

时间:2012-02-21 16:28:00

标签: python python-3.x

如何在Python 3中更改我的代码:

v = b'\x8c\x00'
' '.join([hex(i) for i in v])

这样'0x8c 0x0'变为'8c 00'

/百里

2 个答案:

答案 0 :(得分:3)

v = b'\x8c\x00'
print(' '.join(['{:02x}'.format(i) for i in v]))

产量

8c 00

答案 1 :(得分:0)

(假设您使用的是Python 3.x。)

一种选择是使用binascii.hexlify()转换为十六进制字符串,并在需要时在第二步中插入空格:

s = binascii.hexlify(v)
s = b" ".join(s[i:i + 2] for i in range(0, len(s), 2))

这将首先将s设置为b'8c00',然后将b'8c 00'设置为str。如果您需要bytes而不是s.decode("ascii"),则可以使用{{1}}。