Windows下文件路徑的分隔符是'\'反斜杠,文件路徑也是一個字符串,牽扯到'\'在Python字符串中存在轉義的情況,就對這個問題做一個探究。
Python字符串中要使用'\'時有兩種方法:
- 使用'\'轉義,寫法為'\\'。例如:"c:\\users\\xxx.txt"
- 字符串前加r強制不轉義,寫法r'c:\users\xxx.txt'
Python中默認的是第一種方式,使用轉義字符串來表示路徑,比如os.getcwd()返回的當前目錄的路徑可以發現。當使用第二種方法時,python還是會把字符串轉換為第一種結果。
涉及到路徑的操作大多是路徑的拼接和分割,好在Python已經為這些操作封裝了函數,os.path.join(),os.path.split()。建議大家使用這些函數來完成分割和拼接操作,不要自己寫,一不小心就出錯了。
測試代碼如下:

1 >>> os.getcwd() 2 'C:\\Users\\xdy\\Desktop' 3 >>> f=open(os.getcwd()+r'\forher\out1.txt') 4 >>> f=open(os.getcwd()+'\forher\out1.txt') 5 Traceback (most recent call last): 6 File "<pyshell#21>", line 1, in <module> 7 f=open(os.getcwd()+'\forher\out1.txt') 8 IOError: [Errno 22] Invalid argument: 'C:\\Users\\xdy\\Desktop\x0corher\\out1.txt' 9 >>> 10 >>> os.path.join(os.getcwd(),'forher') 11 'C:\\Users\\xdy\\Desktop\\forher' 12 >>> os.path.sep 13 '\\'