python3输入字符串如何不转义

Python018

python3输入字符串如何不转义,第1张

转义只发生在代码字面量转换为python内部对象的过程中,已经是字符串了,则不会再次转义。

言外之意是当我们得到的字符串在还没有绑定给Python变量时,这个时候我们对它进行操作,就不会发生转义。

#!/usr/bin/python

# encoding: utf-8

charconvertmap = {

    'a': '\a',

    'b': '\b',

    'f': '\f',

    'n': '\n',

    'r': '\r',

}

def strconvertor(s):

    flag = False

    result = []

    for c in s:

        if not flag and c=="\\":

            flag = True

        elif flag:

            result.append(charconvertmap.get(c, c))

            flag = False

        else:

            result.append(c)

    return ''.join(result)

s = strconvertor(r"\btester")

print "%r"%s

#~ >python -u "baidu.py"

#~ '\x08tester'

#~ >Exit code: 0    Time: 0.064

虽然不知道怎么解决你提出的问题,但是感觉你可以不用转义字符啊,举个例子 a = """{'a': "'nihao'"} """ >>>eval(a) {'a': "'nihao'"} 你可以将转义符号用双引号和单引号组合的方式代替