例如,我有一个字节对象
test = b'\x83\xf8\x41\x41\x41'
我想将此对象打印到标准输出,但如果我这样做,Python 会将对象中的可打印字符转换为 ASCII:
print(test)
b'\x83\xf8AAA'
有没有办法强制 Python 3 将可打印字符(在本例中为三个“A”)打印为转义字节?
也就是说,
print(test)
输出b'\x83\xf8\x41\x41\x41'
最佳答案
不,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'
或者您可以将每个单独的“字节”值转换为十六进制表示:
>>> print("b'{}'".format(''.join('\\x{:02x}'.format(b) for b in test)))
b'\x83\xf8\x41\x41\x41'
这产生了另一种表示。
关于python-3.x - 在 Python 3 中打印字节时强制转义可打印字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25348229/