用一个反斜杠替换两个反斜杠

时间:2017-06-21 05:44:45

标签: python-3.x replace filepath backslash

我想用两个带有单个反斜杠的反斜杠替换一个字符串。然而,替换似乎并不接受' \\'作为替换字符串。这是解释器输出:

>>> import tempfile
>>> temp_folder = tempfile.gettempdir()
>>> temp_folder
'C:\\Users\\User\\AppData\\Local\\Temp'
>>> temp_folder.replace('\\\\', '\\')
'C:\\Users\\User\\AppData\\Local\\Temp'

BTW,我知道Windows路径需要包含双反斜杠或单个正斜杠。无论如何我想替换它们用于显示目的。

1 个答案:

答案 0 :(得分:3)

您的输出没有双反斜杠。您正在查看的是字符串的repr()值,并显示转义后的反斜杠。假设你的temp_folder有双反斜杠,你应该使用:

print(temp_folder.replace('\\\\', '\\'))

这会告诉你:

C:\Users\User\AppData\Local\Temp

也会删除引号。

但是你的temp_folder不太可能有双反斜杠,显示的这种差异可能让你认为tempfile.gettempdir()的返回值中有双反斜杠。正如@ Jean-Francois指出的那样,不应该(至少不是在Windows上)。因此,您不需要使用.replace(),只需打印:

print(temp_folder)