在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
语句。)