我需要打印出一串二进制转义序列,例如\x05\x03\x87
,与它们出现的完全一样。当我尝试打印它们时,Python 返回一串奇怪的非 ASCII 字符。如何将它们打印为字符串文字?
最佳答案
repr
>>> a='\x05\x03\x87'
>>> print a
?
>>> print repr(a)
'\x05\x03\x87'
编辑
Sven 指出 OP 可能希望将每个字符转储为十六进制,即使是可打印的字符,在这种情况下,我能想到的最佳解决方案是:
>>> print ''.join(map(lambda c:'\\x%02x'%c, map(ord, a)))
\x05\x03\x87
附加编辑
四年后,我突然想到这可能会更快且更具可读性:
>>> print ''.join(map(lambda c:'\\x%02x'% ord(c), a))
甚至
>>> print ''.join([ '\\x%02x'% ord(c) for c in a ])
关于Python - 二进制转义序列的字符串作为文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13261109/