python
相對路徑:指相對於目前目錄的路徑,目前的目錄稱又稱為工作目錄
例如:example
目錄為目前目錄下有一個子目錄為example
絕對路徑:由系統的根目錄開始表達,Linux和Windows表達方式有其差異
Linux: /etc/httpd/config
Windows: C:\Users\Administrator\Documents\File.txt
.
:特殊目錄符號,代表目前的目錄
..
:特殊目錄符號,代表上一層目錄
os
模組與os.path
模組Python內與目錄相關的模組為os
與os.path
兩個模組,因為os.path
為os
內的子模組,所以只需要import os
即可。
備註:
請記得在字串內,「\」字元需要使用轉譯符號,否則會被當成轉譯字元。
說明:
路徑檢查相關函式回傳直皆為:True
=存在、False
=不存在
補充:
建議在進行目錄操作前,先呼叫
os.path.exists()
檢查是否存在,否則可能會因為建立一個已經存在的目錄而產生例外結束程式。
這個模組與os模組最大的差別是可以使用萬用字元「*」與「?」
所有檔案操作都必須先透過open()
函式開啟檔案並取得檔案物件後才能進行檔案操作。
檔案開啟模式:
模式 | 描述 |
---|---|
t | 文字模式 (預設)。 |
x | 寫模式,新建一個檔案,如果該檔案已存在則會報錯。 |
b | 二進位制模式。 |
+ | 開啟一個檔案進行更新(可讀可寫)。 |
r | 以只讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。 |
rb | 以二進位制格式開啟一個檔案用於只讀。檔案指標將會放在檔案的開頭。這是預設模式。一般用於非文字檔案如圖片等。 |
r+ | 開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。 |
rb+ | 以二進位制格式開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。一般用於非文字檔案如圖片等。 |
w | 開啟一個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。 |
wb | 以二進位制格式開啟一個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。一般用於非文字檔案如圖片等。 |
w+ | 開啟一個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。 |
wb+ | 以二進位制格式開啟一個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。一般用於非文字檔案如圖片等。 |
a | 開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 |
ab | 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 |
a+ | 開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。 |
ab+ | 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。 |
補充:
開啟檔案時可以相對路徑或絕對路徑指定檔案位置。
若沒有指定encoding參數,開檔時將採用 locale.getpreferredencoding()
的編碼設定,如果要強制指定使用UTF-8編碼,可以加上encoding
參數來指定編碼,例如:
另一種方式(使用readlines()
方法)
當呼叫open()
函式打開檔案時,預設只能讀取內容而無法寫入,因此如果要寫入內容到檔案,需要指定「w」模式才能人入資料到檔案。
補充:
如果要寫入多行資料,需要加上「
\n
」來換行
Python提供了shutile用來操作檔案的複製、刪除、移動與修改名稱等等操作,要進行這些操作前需要引入shutil模組:
補充:
在移動的過程中如果目的路徑有包含檔案名稱,則會一併修改檔案名稱
move()
函式也可以用來進行目錄的移動
補充:
如果目的地的目錄不存在,則會將原始目錄更名為該名稱,達到改變目錄名稱的效果。
補充:
如果要刪除的目錄不是空的,則會刪除失敗。
注意:
刪除後無法復原,請小心使用。
列出指定目錄下所有檔案的大小總和。
將指定目錄下的文字檔檔名前面都加上編號,例如:
變成: