Python - 二进制转义序列的字符串

Ami*_*mit 8 python string

我需要打印出一串二进制转义序列,例如\x05\x03\x87,就像它们出现的那样.当我尝试打印它们时,Python返回一串奇怪的非ASCII字符.如何将它们打印为字符串文字?

Mal*_*lio 14

repr

>>> a='\x05\x03\x87'
>>> print a
?
>>> print repr(a)
'\x05\x03\x87'
Run Code Online (Sandbox Code Playgroud)

编辑

Sven指出OP可能希望每个字符都以十六进制转储,甚至是可打印的,在这种情况下,我能想到的最佳解决方案是:

>>> print ''.join(map(lambda c:'\\x%02x'%c, map(ord, a)))
\x05\x03\x87
Run Code Online (Sandbox Code Playgroud)

其他编辑

四年后,我发现这可能既快又可读:

>>> print ''.join(map(lambda c:'\\x%02x'% ord(c), a))
Run Code Online (Sandbox Code Playgroud)

甚至

>>> print ''.join([ '\\x%02x'% ord(c) for c in a ])
Run Code Online (Sandbox Code Playgroud)