Преобразование символов в их escape-последовательности Python - PullRequest
2 голосов
/ 03 мая 2011

Можно ли взять строку и преобразовать всех символов в их escape-последовательности Python?

Ответы [ 2 ]

5 голосов
/ 03 мая 2011

repr() экранирует все символы, которые необходимо экранировать

repr(string)

В стандартной библиотеке есть другие методы, например экранирование URI и т. Д.

3 голосов
/ 03 мая 2011

Поддерживает полное экранирование как str, так и unicode (теперь генерирует самую короткую escape-последовательность):

def escape(s):
    ch = (ord(c) for c in s)
    return ''.join(('\\x%02x' % c) if c <= 255 else ('\\u%04x' % c) for c in ch)

for text in (u'\u2018\u2019hello there\u201c\u201d', 'hello there'):
    esc = escape(text)
    print esc

    # code below is to verify by round-tripping
    import ast
    assert text == ast.literal_eval('u"' + esc + '"')

Выход:

\u2018\u2019\x68\x65\x6c\x6c\x6f\x20\x74\x68\x65\x72\x65\u201c\u201d
\x68\x65\x6c\x6c\x6f\x20\x74\x68\x65\x72\x65
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...