例如,我有一个字节对象
test = b'\x83\xf8\x41\x41\x41'
Run Code Online (Sandbox Code Playgroud)
我想将此对象打印到标准输出,但如果我这样做,Python 会将对象中的可打印字符转换为 ASCII:
print(test)
b'\x83\xf8AAA'
Run Code Online (Sandbox Code Playgroud)
有没有办法强制 Python 3 将可打印字符(在本例中为三个“A”)打印为转义字节?
也就是说,使得print(test)输出
b'\x83\xf8\x41\x41\x41'
Run Code Online (Sandbox Code Playgroud)
不,repr()输出不可配置;它是一个调试工具。
您可以使用binascii.hexlify()来获取十六进制表示:
>>> test = b'\x83\xf8\x41\x41\x41'
>>> from binascii import hexlify
>>> test = b'\x83\xf8\x41\x41\x41'
>>> print(hexlify(test))
b'83f8414141'
Run Code Online (Sandbox Code Playgroud)
或者您可以将每个单独的“字节”值转换为十六进制表示:
>>> print("b'{}'".format(''.join('\\x{:02x}'.format(b) for b in test)))
b'\x83\xf8\x41\x41\x41'
Run Code Online (Sandbox Code Playgroud)
这产生了另一种表示。
| 归档时间: |
|
| 查看次数: |
1404 次 |
| 最近记录: |