我们在写python的时候经常会用到文件路径,在windows系统中,文件路径分隔符是反斜杠,而某些情况下,我们想让路径末尾是反斜杠,这种时候,如果将这个路径写成字符串常量,就会报错:

如何处理字符串不能以反斜杠结尾的问题(如何处理字符串不能以反斜杠结尾的问题)(1)

这是因为python有个bug,字符串不能以单个反斜杠结尾。

如果把末尾的斜杠改成双斜杠,虽然最后一个可以正常显示,但是前面的斜杠也都必须改成双斜杠。

如何处理字符串不能以反斜杠结尾的问题(如何处理字符串不能以反斜杠结尾的问题)(2)

常规的做法是把所有反斜杠都写成双反斜杠,如下图:

如何处理字符串不能以反斜杠结尾的问题(如何处理字符串不能以反斜杠结尾的问题)(3)

但这样做比较麻烦,我们可以在字符串的引号前面加r,表示字符串里所有转义字符都原样输出

如何处理字符串不能以反斜杠结尾的问题(如何处理字符串不能以反斜杠结尾的问题)(4)

但是有个问题,这样还是无法处理末尾是反斜杠的情况

如何处理字符串不能以反斜杠结尾的问题(如何处理字符串不能以反斜杠结尾的问题)(5)

末尾改成双斜杠也不行,因为它不转义

如何处理字符串不能以反斜杠结尾的问题(如何处理字符串不能以反斜杠结尾的问题)(6)

最后,解决办法就是把反斜线放在另一个字符串里,Python会自动进行合并。也就是写成两个字符串,一个是路径的前面部分,一个是末尾的斜杠。

如何处理字符串不能以反斜杠结尾的问题(如何处理字符串不能以反斜杠结尾的问题)(7)

,