Converting characters to their python escape sequences

倖福魔咒の 提交于 2020-01-13 18:37:05

问题


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


回答1:


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



回答2:


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



来源:https://stackoverflow.com/questions/5864279/converting-characters-to-their-python-escape-sequences

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!