在python中用\替换\\
我有一个字符串,其文件夹路径如下所示在python中用\替换\\,python,Python,我有一个字符串,其文件夹路径如下所示 >>> path '\\\\sdgte\\ssdfdaa\\asfdsf' 我想将\\替换为\。我试图更换,但无法按以下方式工作 >>> path.replace('\\','\') File "<input>", line 1 path.replace('\\','\') ^ SyntaxError: EOL while scanning string litera
>>> path
'\\\\sdgte\\ssdfdaa\\asfdsf'
我想将\\替换为\。我试图更换,但无法按以下方式工作
>>> path.replace('\\','\')
File "<input>", line 1
path.replace('\\','\')
^
SyntaxError: EOL while scanning string literal
路径。替换(“\\”,“\\”)
文件“”,第1行
路径。替换(“\\”,“\\”)
^
SyntaxError:扫描字符串文字时下线
非常感谢您的帮助。字符串中没有“\\”。如果您打印它而不是查看它的表示形式,您将看到字符串实际包含的值
>>> print path
\\sdgte\ssdfdaa\asfdsf
你可能不需要更换任何东西
\
是python中的一个特殊字符,在字符串文本中表示“下一个字符”。也就是说,如果您想要一个包含反斜杠的字符串,您可能需要键入“\\”
:
您应该使用转义字符“\”来转义字符串中的每个\
path.replace('\\\\','\\')
您遇到的问题是\是转义字符。而不是把它当作 将“\\”替换为“\” python将您的参数解读为“将单个反斜杠字符替换为单个引号字符”。之所以会出现这样的错误,是因为python忽略了第二个单引号,因为它认为这是您希望它做的 你想要的是:
path.replace('\\\\', '\\')
您必须转义所有反斜杠,因为它们是特殊的。得到SyntaxError的原因与看到双反斜杠的原因相同:反斜杠是“转义”字符,用于指示特殊序列的开始,如换行符的“\n”,否则很难用字符串表示。因此,反斜杠字符本身必须用双反斜杠表示 另一方面,如果不需要在字符串中使用任何转义序列,则可以在字符串前面加上“r”,而不是将反斜杠加倍: 路径.替换(r'\\',r'\')
“r”表示“原始”字符串。
r'\\'=='\\\'
r'\'
引发一个语法错误。正如您所看到的,我在发布之前没有进行测试。:)我得说,这个结果让我很惊讶。反斜杠后面的任何字符都可以使用,但我想没有办法在原始字符串中包含一个终端反斜杠。请参阅。我尝试过这样做,但它只替换第一次出现的字符。>>>路径'\\\\server path\\parent folder\\folder1'>>>path.replace(r'\\','\\')'\\server path\\parent folder\\folder1',因为正如其他人所指出的,字符串中只有一个真正的双反斜杠实例(开头的那个)。Python只是为了显示而将它们加倍。这是print path
和print repr(path)
之间的区别——只需在交互式shell中键入path
就像print repr(path)
。(或者,print(repr(path))
在Python 3中。)现在在您的系统上尝试:>>len('\\')
。我尝试了,但它只替换了第一次出现的内容。>>>路径'\\\\server path\\parent folder\\folder1'>>>path.replace('\\\\','\\')'\\server path\\parent folder\\folder1'
path.replace('\\\\', '\\')
path.replace(r'\\', '\\')