re.escape返回不可用的目录

时间:2018-10-12 20:02:47

标签: python replace directory

在此目录上使用re.escape()

C:\Users\admin\code

理论上应该返回这个,对吧?

C:\\Users\\admin\\code

但是,我实际上得到的是这个

C\:\\Users\\admin\\code

在C后面立即注意反斜杠。这使该字符串不可用,并且尝试使用directory.replace('\', '')只是调试了Python,因为它无法处理单个反斜杠字符串,并将其后的所有内容都视为字符串。 / p>

有什么想法吗?

1 个答案:

答案 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具有特殊的含义(哔声)。