我有有类似下面替换\与 python中
>>> path
'\\\\sdgte\\ssdfdaa\\asfdsf'
我想用\替换\\文件夹的路径的字符串。我试图取代,但不如下
>>> path.replace('\\','\')
File "<input>", line 1
path.replace('\\','\')
^
SyntaxError: EOL while scanning string literal
工作有什么帮助将高度赞赏。
我有有类似下面替换\与 python中
>>> path
'\\\\sdgte\\ssdfdaa\\asfdsf'
我想用\替换\\文件夹的路径的字符串。我试图取代,但不如下
>>> path.replace('\\','\')
File "<input>", line 1
path.replace('\\','\')
^
SyntaxError: EOL while scanning string literal
工作有什么帮助将高度赞赏。
字符串中没有“\\”。如果您打印它而不是查看它的表示,您会看到该字符串实际包含的值。
>>> print path
\\sdgte\ssdfdaa\asfdsf
您可能不需要更换任何东西。 \
是python中的一个特殊字符,意思是字符串文字中的“下一个字符”。也就是说,如果你想有一个字符串,方含反斜杠,你可能键入"\\"
:
>>> len('\\')
1
>>> print '\\'
\
>>> print '\\\\foo\\bar'
\\foo\bar
>>>
您应该使用逃生charachter“\”逃脱每个\在字符串中
path.replace('\\\\','\\')
你遇到的问题是\是一个转义字符。取而代之的读取作为
与“\”
Python是读你的参数作为替代“\\”“替换为单引号字符单反斜杠字符”。你得到错误的原因是因为python忽略了你的第二个单引号,因为它认为这是你想要的。
你想要的是:
path.replace('\\\\', '\\')
你有逃避所有的反斜线,因为他们是特殊的。
我尝试过,但它只是取代第一次出现。 >>> path '\\\\ server path \\ parent folder \\ folder1' >>> path.replace('\\\\','\\') '\\ server path \\ parent folder \\ folder1' – anujkum
你得到这个SyntaxError的原因与你看到加倍反斜杠开始的原因是相同的:反斜杠是“转义”字符,用来表示特殊序列的开始,如“\ n”换行,否则很难在字符串中表示。因此反斜杠字符本身必须用双反斜杠表示。
在另一方面,如果你不需要在字符串中使用任何转义序列,可以前言字符串以“R”,而不是反斜杠加倍:
path.replace(R” \\”,R '\')
path.replace(r'\\', '\\')
“r” 表示一个 “原始” 的字符串。
现在尝试:>>> len('\\')'在您的系统上。 –