首页 > 解决方案 > 字节的可读十六进制转储

问题描述

我想将字节列表转换为十六进制值的字符串。字节列表有点长,所以我希望字节之间有空格以提高可读性。功能hexlifyhex工作:

import binascii
a = [1,2,3,4]
s = binascii.hexlify(bytearray(a))
print s
s = bytes(a).hex()
print s

但结果是'01020304'。我想要一个在“01 02 03 04”之类的字节之间有空格的转储。我怎样才能有效地做到这一点?

编辑: 还有一种迭代所有字节的方法。这会有效吗?

s = ' '.join('%02x' % i for i in a)

标签: python

解决方案


您可以将bytes.hex与分隔符字符串一起使用:

>>> bs = b'Hello world'
>>> bs.hex(sep=' ')
'48 65 6c 6c 6f 20 77 6f 72 6c 64'

推荐阅读