将二进制字符串转换为十六进制表示形式python

时间:2016-12-02 17:38:39

标签: python python-3.x

在Python 3中,我有一个二进制字符串,我需要检查它的字节值。因为某些字节是可打印的ASCII,所以很难看到打印的表示。

data = b'\x08\x02\x10\x22\x0a\x0d\x00\x80\x3f\x15'
print('data is', len(data), 'bytes:', data)
# data is 10 bytes: b'\x08\x02\x10"\n\r\x00\x80?\x15'

我更喜欢每个字节都有完整的十六进制。有没有比这更简单的方法:

import binascii
import re
s = re.sub(r'..', r'\\x\g<0>', binascii.hexlify(data).decode('ascii'))
print(s)
# \x08\x02\x10\x22\x0a\x0d\x00\x80\x3f\x15

(最好使用最少数量的import语句。)

0 个答案:

没有答案