错误原因是,字符串以 \ 结尾 或者字符串缺少引号。
写代码拼接windows 路径出现这个错误, 查资料才知道 python中字符串不能以 \ 结尾
我的代码如下
importos
dirname= "test"path = r'C:\Users\panda\Desktop\新建文件夹\' + dirname
运行则报错
File "test.py", line 3path= r'C:\Users\panda\Desktop\新建文件夹\' + dirname
^SyntaxError: EOLwhile scanning string literal
那么如何解决呢
方法一 : 使用 os.path.join
path = os.path.join(r'C:\Users\panda\Desktop\新建文件夹', dirname)
方法二:路径的反斜杠使用转义 而不用 r
path = 'C:\\Users\\panda\\Desktop\\新建文件夹\\' + dirname
方法三:格式化字符串
dirname="test"path= r'C:\Users\panda\Desktop\新建文件夹\%s' % (dirname) #第一种格式化方法#从 python 2.6 开始
path = r'C:\Users\panda\Desktop\新建文件夹\{}'.format(dirname) #第二种格式化方法
方法四: string interpolation (字符串内插)
从python 3.6 开始 支持string interpolation
#python 3.6 开始 支持string interpolation
dirname = "test"path3= rf'C:\Users\panda\Desktop\新建文件夹\{dirname}'
为何 字符串不能 以 \ (反斜杠) 结束呢
因为 反斜杠有别的用处。 python中一个完整的字符串太长的时候,一行写不下想换行,但又要维持它是一个字符串的时候 可以用 反斜杠来换行,所以反斜杠后面不能立即接上字符串结束的引号。
下面用 REPL演示
参考资料: