在此目录上使用re.escape()
:
C:\Users\admin\code
理论上应该返回这个,对吧?
C:\\Users\\admin\\code
但是,我实际上得到的是这个
C\:\\Users\\admin\\code
在C后面立即注意反斜杠。这使该字符串不可用,并且尝试使用directory.replace('\', '')
只是调试了Python,因为它无法处理单个反斜杠字符串,并将其后的所有内容都视为字符串。 / p>
有什么想法吗?
答案 0 :(得分:0)
不,不应该。帮助会说:“将模式中的所有字符转义,但不包括ASCII字母,数字和'_'”
报告的结果是在结果字符串上调用print函数之后。在控制台中,如果您输入directory
并按Enter键,它将显示以下内容:C\\:\\\\Users\\\\admin\\\\code
。使用directory.replace('\\','')
时,它将替换所有反斜杠。例如:directory.replace('\\','x')
给出Cx:xxUsersxxadminxxcode
。在这种情况下,可以用':'代替反斜杠和冒号,即directory.replace('\\:',':')
。这将起作用。
但是,我建议您做点其他事情。在Python中使用Windows目录的一种巧妙方法是使用正斜杠。 Python和OS将找出一种以正斜杠理解路径的方法。此外,如果您不使用绝对路径,那么就路径而言,您的代码将可以移植到Unix风格的操作系统中。
在我看来,您不必要地致电re.escape
。如果打印目录为您提供C:\Users\admin\code
,那么这是一个可以使用的完美目录。而且您不需要逃避它。已经完成了。如果无法避免,print('C:\Users\admin\code')
会给出类似C:\Usersdmin\code
的信息,因为\a
具有特殊的含义(哔声)。