Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting characters to their python escape sequences

Is it possible to take a string, and convert all the characters into their Python escape sequences?

like image 883
Acorn Avatar asked May 24 '26 21:05

Acorn


2 Answers

repr() escapes all the characters that need to be escaped

repr(string)

There are other methods in the standard library for the likes of escaping URIs and so on

like image 141
John La Rooy Avatar answered May 27 '26 10:05

John La Rooy


Supports full escaping of both str and unicode (now produces the shortest escape sequence):

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

Output:

\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
like image 25
samplebias Avatar answered May 27 '26 11:05

samplebias