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

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

'x89n'

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

'x89n'

2 ответов


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

raw_string.decode('string_escape')

демо:

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

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

raw_byte_string.decode('unicode_escape')

если ваша входная строка уже строка Юникода, используйте 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')