3 回答
TA贡献1817条经验 获得超14个赞
无需使用str.replace或string.replace在这里,只需将该字符串转换为原始字符串即可:
>>> strs = r"C:\Users\Josh\Desktop\20130216"
^
|
notice the 'r'
以下是repr上述字符串的版本,这就是您在\\这里看到的原因。但是,实际上,实际的字符串只是'\'不包含\\。
>>> strs
'C:\\Users\\Josh\\Desktop\\20130216'
>>> s = r"f\o"
>>> s #repr representation
'f\\o'
>>> len(s) #length is 3, as there's only one `'\'`
3
但是,当您要打印此字符串时,将不会进入'\\'输出。
>>> print strs
C:\Users\Josh\Desktop\20130216
如果您希望在此'\\'期间显示字符串,请print使用str.replace:
>>> new_strs = strs.replace('\\','\\\\')
>>> print new_strs
C:\\Users\\Josh\\Desktop\\20130216
repr现在将显示版本\\\\:
>>> new_strs
'C:\\\\Users\\\\Josh\\\\Desktop\\\\20130216'
TA贡献1831条经验 获得超10个赞
让我简单明了。让我们在python中使用re模块来转义特殊字符。
Python脚本:
import re
s = "C:\Users\Josh\Desktop"
print s
print re.escape(s)
输出 :
C:\Users\Josh\Desktop
C:\\Users\\Josh\\Desktop
解释 :
现在观察一下re.escape函数对给定字符串中的特殊字符进行转义的情况,我们可以在每个反斜杠之前添加另一个反斜杠,最后输出结果是一个双反斜杠,即所需的输出。
希望这对您有所帮助。
添加回答
举报