我想将字节列表转换为十六进制值的字符串。字节列表有点长,所以我想在字节之间增加空格以提高可读性。函数hexlify
和hex
都可以完成工作:
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)
答案 0 :(得分:1)
您可以迭代结果
import binascii
a = [1,2,3,4]
s = binascii.hexlify(bytearray(a))
s = bytes(a).hex()
iterate = iter(s)
print ' '.join(a+b for a,b in zip(iterate, iterate))
答案 1 :(得分:0)
您可以将bytes.hex与分隔符字符串一起使用:
>>> bs = b'Hello world'
>>> bs.hex(sep=' ')
'48 65 6c 6c 6f 20 77 6f 72 6c 64'