錯誤原因是,字元串以 \ 結尾 或者字元串缺少引號。 寫代碼拼接windows 路徑出現這個錯誤, 查資料才知道 python中字元串不能以 \ 結尾 我的代碼如下 運行則報錯 那麼如何解決呢 方法一 : 使用 os.path.join 方法二:路徑的反斜杠使用轉義 而不用 r 為何 字元串不能 以 ...
錯誤原因是,字元串以 \ 結尾 或者字元串缺少引號。
寫代碼拼接windows 路徑出現這個錯誤, 查資料才知道 python中字元串不能以 \ 結尾
我的代碼如下
import os dirname = "test"
path = r'C:\Users\panda\Desktop\新建文件夾\' + dirname
運行則報錯
File "test.py", line 3 path = r'C:\Users\panda\Desktop\新建文件夾\' + dirname ^ SyntaxError: EOL while 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}'
參考: https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep498
為何 字元串不能 以 \ (反斜杠) 結束呢
因為 反斜杠有別的用處。 python中一個完整的字元串太長的時候,一行寫不下想換行,但又要維持它是一個字元串的時候 可以用 反斜杠來換行,所以反斜杠後面不能立即接上字元串結束的引號。
下麵用 REPL演示
參考資料:
SyntaxError: EOL while scanning string literal的解決 - CSDN博客
python: SyntaxError: EOL while scanning string literal - Stack Overflow