# 1.文件路徑 我們發現不管是寫入還是寫出操作,我們提供的都是文件名,其實這裡準確說應該是文件路徑。當我們簡單把文件名傳遞給open函數時,Python將在當前執行程式的文件所在的目錄中查找文件名所代表的文件。 根據組織文件的方式,可能需要打開不在當前執行程式文件所屬目錄中的文件。如果此時我們把該 ...
1.文件路徑
我們發現不管是寫入還是寫出操作,我們提供的都是文件名,其實這裡準確說應該是文件路徑。當我們簡單把文件名傳遞給open函數時,Python將在當前執行程式的文件所在的目錄中查找文件名所代表的文件。
根據組織文件的方式,可能需要打開不在當前執行程式文件所屬目錄中的文件。如果此時我們把該文件名傳遞給open函數那麼會找不到該文件。要讓Python打開不與當前執行程式文件位於同一路徑下的文件時,需要提供文件路徑,它讓Python到系統的特定位置去查找。
提供文件路徑的方式有兩種:絕對文件路徑和相對文件路徑
1.1絕對文件路徑
絕對文件路徑,就是文件所在硬碟的具體路徑。
我們通過PyCharm來複制文件的絕對路徑
左鍵選中文件->右擊->在菜單中選擇Copy Path/Reference
選擇Absolute Path
在使用絕對路徑之前的程式如下所示:
將文件名修改為絕對路徑之後,嘗試運行程式
發現會報錯,這是因為反斜杠\是轉義字元,我們應該不讓反斜杠\具有轉義字元的功能,希望它成為字元串的一部分,我們可以在開頭的單引號前加上r
在原本絕對路徑字元串前加上r之後,發現程式運行的結果就符合我們的預想了。
1.2相對文件路徑
相對文件路徑,是相對當前執行文件的位置,一般是同級、上級目錄、下級目錄這三種。
1.2.1同級目錄
同級目錄情況下有兩種書寫方式,第一種是直接寫文件名,我們之前就用的這種,不作過多介紹。第二種是用當前目錄位置符-句點,編寫程式如下所示。
斜杠代表目錄層級
1.2.2下級目錄
文件位置:
我們發現main主程式和down是同級目錄,poems_down.txt,是down的下級目錄,也就是說我們要打開的文件在下級目錄裡面。
我們知道了同級目錄可以直接寫文件名稱或者./的方式,這裡的down是同級目錄,所以我們通過相對路徑去尋找下級目錄時,先找到同級目錄,然後通過目錄層級符/依次尋找到目標文件。在本例子中,我們只需down/poems_down.txt即可,編寫程式如下所示。
1.2.3上級目錄
文件位置:
我們發現main.py在main的目錄之下,main文件夾和poems_up.txt是在同一級目錄,所以說現在main.py要去打開上一級目錄中的poems_up.txt,這裡就需要用到上一級目錄符號../,編寫程式如下所示: