Python - как преобразовать "сырую" строку в обычную строку

В Python у меня есть такая строка:

'\\x89\\n'

Как я могу декодировать его в обычную строку, например:

'\x89\n'

2 ответа

Решение

2-байтовые строки Python могут быть декодированы 'string_escape' кодек:

raw_string.decode('string_escape')

Демо-версия:

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

Для литералов Unicode используйте 'unicode_escape', В Python 3, где строки являются строками Юникода по умолчанию, только байтовые строки имеют .decode() метод:

raw_byte_string.decode('unicode_escape')

Если ваша входная строка уже является строкой Unicode, используйте codecs.decode() преобразовать:

import codecs

codecs.decode(raw_unicode_string, 'unicode_escape')

Демо-версия:

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

Это будет работать для Python 3:

b'\\x89\\n'.decode('unicode_escape')
Другие вопросы по тегам