python:使用字符串转义进行编码以获得正确的引号

python:使用字符串转义进行编码以获得正确的引号,python,escaping,encode,Python,Escaping,Encode,我想对我的字符串进行编码: x="print 'Hello.\nI\'m a robot from district 09'" x=x.encode('string-escape') print x # Result: print \'Hello.\nI\'m a robot from district 09\' 但这不是我期望的结果。我想要像这样的东西: # Result: print 'Hello.\nI\'m a robot from district 09' 如何得到这个结果?因此

我想对我的字符串进行编码:

x="print 'Hello.\nI\'m a robot from district 09'"
x=x.encode('string-escape')
print x

# Result: print \'Hello.\nI\'m a robot from district 09\'
但这不是我期望的结果。我想要像这样的东西:

# Result: print 'Hello.\nI\'m a robot from district 09'
如何得到这个结果?因此,当我使用“exec x”执行它时,我将得到以下结果:

exec x
# Result: 
Hello.
I'm a robot from district 09
使用

编辑:如注释中所述,此方法忽略了“在我的 使用“r”可以简单地打印原始字符串。请参见下面的示例。这次我自己确认了结果

x= r"print 'Hello, \nI\'m a robot from district 09'"
print x

#result: print 'Hello, \nI\'m a robot from district 09'
Edit2:不能将现有字符串变为“原始”。解析器理解文本上的r前缀;它告诉它忽略字符串中的转义序列。但是,一旦解析了字符串文字,原始字符串和“常规”字符串之间就没有区别了。例如,如果您有一个包含换行符的字符串,则在运行时无法判断该换行符是来自转义序列\n还是来自类似“\next”的字符串。由这些方法构造的实际字符串对象看起来是相同的

因此,任何使用字符串编码/字符串转义和repr的尝试都会因您预期的使用而失败


希望这有帮助。

谢谢,但结果仍然错误:“打印‘你好。\n我是09区的机器人’”。-i'm-中的“\”丢失。@andio请查看编辑。谢谢你指出错误!嗨,是的,我也试过。只有当我能自己设置x时,“r”才起作用。但如果x是其他用户输入的变量(使用文本输入界面)。如何将“r”嵌入到该变量中?所以目标是:用户在文本输入中输入命令。然后我提供了一个按钮,我可以使用'exec'命令来运行它。实际上,r'mystring'是一个完美的解决方案。但是如果有人给我字符串变量VAR,我如何嵌入它,使其看起来像:rVAR。看来我没办法这么做
x= r"print 'Hello, \nI\'m a robot from district 09'"
print x

#result: print 'Hello, \nI\'m a robot from district 09'