大爽Python入門公開課教案 點擊查看教程總目錄
本章第三節 文件讀寫中的
open(file, mode)
中的file
,嚴格來講是文件路徑,而不只是文件名。
一般來講,盡量保證代碼文件,和要讀取的文件在同一文件夾下。
因為此時代碼里面讀取文件,文件路徑可以直接使用文件名(帶后綴名的)。
如果文件和代碼不在一文件夾下,就相對比較麻煩。
假設要讀取的文件叫做001.txt
,之后簡稱文件
代碼文件叫demo5.py
,之后簡稱代碼
以下分情況討論,
1 相對路徑
當文件和代碼的相對關系固定時,可以使用相對路徑。
文件上級文件夾和代碼平級
如下所示
root
|---demo5.py
|---text
|---001.txt
此時代碼里面讀取文件
file
應該寫為text/001.txt
進一步地,如果文件上級文件夾的上級文件夾和代碼平級。
如下所示
root
|---demo5.py
|---files
|---text
|---001.txt
此時代碼里面讀取文件
file
應該寫為files/text/001.txt
此情況衍生情況同理
代碼上級文件夾和文件平級
如下所示
root
|---001.txt
|---codes
|---demo5.py
此時代碼里面讀取文件
file
應該寫為../001.txt
進一步地,如果代碼上級文件夾的上級文件夾和文件平級。
如下所示
root
|---001.txt
|---codes
|---simple
|---demo5.py
此時代碼里面讀取文件
file
應該寫為../../001.txt
此情況衍生情況同理
復合情況
此時使用上面兩種語法,聯合處理。
比如代碼上級文件夾和文件的上級文件夾平級。
如下
root
|---text
|---001.txt
|---codes
|---demo5.py
此時代碼里面讀取文件
file
應該寫為../text/001.txt
絕對路徑
文件位置本身基本不發生變化的時候,可以使用絕對路徑。
比如假設計算機的D
盤里有一個projects
文件夾,
projects
文件夾下有一個lesson5
文件夾,
lesson5
文件夾下有一個001.txt
文件。
此時001.txt
的絕對路徑為
D://projects/lesso5/001.txt
補充,硬盤下面文件夾的絕對路徑寫法為:
硬盤名 + ://
+ 文件夾名
對比
絕對路徑也可稱完整路徑,是指向文件系統中某個固定位置的路徑,不會因當前的工作目錄而產生變化。為做到這點,它必須包括根目錄。
相對路徑則是以指定的工作目錄作為基點,避開提供完整的絕對路徑。文件名稱就可以被視為以指定工作目錄為基點的一個相對路徑(雖然一般不將其稱之為路徑)。