3 回答

TA貢獻1817條經(jīng)驗 獲得超14個贊
無需使用str.replace或string.replace在這里,只需將該字符串轉(zhuǎn)換為原始字符串即可:
>>> 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現(xiàn)在將顯示版本\\\\:
>>> new_strs
'C:\\\\Users\\\\Josh\\\\Desktop\\\\20130216'

TA貢獻1831條經(jīng)驗 獲得超10個贊
讓我簡單明了。讓我們在python中使用re模塊來轉(zhuǎn)義特殊字符。
Python腳本:
import re
s = "C:\Users\Josh\Desktop"
print s
print re.escape(s)
輸出 :
C:\Users\Josh\Desktop
C:\\Users\\Josh\\Desktop
解釋 :
現(xiàn)在觀察一下re.escape函數(shù)對給定字符串中的特殊字符進行轉(zhuǎn)義的情況,我們可以在每個反斜杠之前添加另一個反斜杠,最后輸出結(jié)果是一個雙反斜杠,即所需的輸出。
希望這對您有所幫助。
添加回答
舉報