¿Cómo convertir una cadena “sin procesar” en una cadena normal?

En Python, tengo una cadena como esta:

'\\x89\\n' 

¿Cómo puedo decodificarlo en una cadena normal como:

 '\x89\n' 

Las cadenas de 2 bytes de Python se pueden decodificar con el códec 'string_escape' :

 raw_string.decode('string_escape') 

Manifestación:

 >>> '\\x89\\n'.decode('string_escape') '\x89\n' 

Para literales Unicode , use 'unicode_escape' . En Python 3, donde las cadenas son cadenas Unicode por defecto, solo las cadenas de bytes tienen un método .decode() :

 raw_byte_string.decode('unicode_escape') 

Si su cadena de entrada ya es una cadena Unicode, use codecs.decode() para convertir:

 import codecs codecs.decode(raw_unicode_string, 'unicode_escape') 

Manifestación:

 >>> b'\\x89\\n'.decode('unicode_escape') '\x89\n' >>> import codecs >>> codecs.decode('\\x89\\n', 'unicode_escape') '\x89\n' 

Esto funcionaría para Python 3:

 b'\\x89\\n'.decode('unicode_escape')