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')