2016-02-03 38 views
0

我需要双重转义python字符串中的所有转义字符。因此,举例来说,需要的'\n'任何情况下,由'\\n'代替我可以很容易地做到这一点一个字符时间python:逃避所有转义字符

s = s.replace('\n', '\\n') 
s = s.replace('\r', '\\r') 
# etc... 

但我不知道是否有一个一次性处理所有这些方式。

回答

3

repr返回字符串的字符串表示形式......除了双重转义转义字符(如果您在自己中键入转义字符)之外,它听起来多余。它也将字符串括在引号中,但可以轻松删除。

>>> repr('\n\t\r')[1:-1] 
'\\n\\t\\r' 
+1

对于Python2,它也会转义/编码非ascii字符(不确定这是否是OP的预期)。 – ekhumoro

+0

@ekhumoro是的,你说得很对。感谢您指出了这一点。 – tdelaney

+0

@ekhumoro在我的情况下,非ASCII字符不是问题,但很高兴知道未来。 – ewok