簡介
這篇要介紹的是透過Python來進行文字檔案的『讀取、寫入、儲存』這三個基本功能,而檔案室以『txt』文字檔來實驗,當你要儲存某些資訊時,就會使用到本篇的功能,例如儲存Log、讀取天氣資訊、複寫資訊等等,皆可參照本篇。
新增資料夾
在Python中要新增資料夾的話,我們會使用到一個套件,叫做『 os 』,而下表我會列出透過os套件的方法。
指令 | 敘述 |
rename | 將指定的檔案重新命名,os.rename(原檔名,新檔名) |
remove | 將指定檔案移除,os.remove(檔名) |
mkdir | 新增資料夾,os.mkdir(路徑+檔名) |
getcwd | 獲取當前的目錄,os.getcwd() |
chdir | 回到上一層,os.chdir(‘../’) |
path | 讀取路徑,os.path |
path.exists | 判斷資料夾是否存在 |
path.isdir | 判斷資料夾是否存在,os.path.isdir(路徑) |
透過上表常見的指令我們就來新增一下資料夾,最重要就是要『import os』這套件,然後我們先新增一個path路徑容器,用意是你要新增資料夾的路徑加上資料夾名稱,接著透過判斷式,先判斷『該路徑是否有該資料夾,假如沒有就幫我新增資料夾』,所以我們這邊就要用到上表的『os.path.isdir (判斷是否存在)與 os.mkdir(新增資料夾)』。
執行過後你就可以在jupyter notebook或是你檔案管理看到新增了一個資料夾。
讀取、寫入、創建
我們要讀寫檔案前當然要先創立我們要做動的檔案,我們透過『open()』來創建,我們來看看open()內要塞的屬性是什麼。第一屬性是檔案的『路徑+檔名(記得要加上副檔名』如下呈現。
file = open('檔案', '模式','編碼模式')
//file = open(filename, 'r')
而第二個要塞的就是你的動作,下表我整理了該欄位可以塞的指令與敘述:
指令 | 敘述 |
r | 讀取(檔案需存在) |
w | 新建檔案寫入(檔案可不存在,若存在則清空) |
a | 資料附加到舊檔案後面(游標指在EOF) |
r+ | 讀取舊資料並寫入(檔案需存在且游標指在開頭) |
w+ | 清空檔案內容,新寫入的東西可在讀出(檔案可不存在,會自行新增) |
a+ | 資料附加到舊檔案後面(游標指在EOF),可讀取資料 |
b | 二進位模式 |
第三個要塞的可以新增也可以省略,但我覺得加一下比較好,大家所知道的編碼模式有『big5 , UTF8 , ASCII(這是預設的編碼模式)』,假如你要切換模式的話,在這欄可以數入『encoding=’UTF-8’』。
我們了解了要塞的東西後,我們可以輸入上圖一的指令,並可以看到系統就建立了我們所指定的檔案。接下來我們就要把該檔案塞入文字。而我們也要不厭其煩的列出讀取寫入等其他的方式。
指令 | 敘述 |
read() | 將文字讀取成string(若換行會包含\n),其中size為要讀取長度,若不填則讀取全部。 |
write() | 寫入,括弧內要填入string型態 |
close() | 關閉檔案讀取 |
seek() | 控制游標位置,0:文件最前端, 1:目前游標位置,2:文件最末端 |
readlines() | 讀取多行,傳回list, element 為每一行的string(最後包含\n) |
readline() | 讀取當下游標後的一行文字 |
透過使用『write()』將要寫的文字塞入括弧中,並在字串後面加上換行『\n』指令,可以看到上圖一,執行過後成果如上圖二,完成寫入檔案,當寫完檔案並將open功能關閉,使用『close()』即可。
最後要來實現讀取的功能,在剛剛我們使用open()這方法時模式方面假如要讀取,就要換成『r』。再透過『read()』來讀取,而括弧裡面假如每有填入索引值,他就會讀取檔案的全部字元。
而我們在read括弧中填入要讀取的字串長度的話,就會擷取該限度,如上圖,如此一來我們就知道在Python中如何實現『創建、讀取、寫入』。
小結
在最後我們可以再提供一個方式來快速完成讀取動作,如上圖,我們把此動作弄成回圈型態,一樣使用『open』功能並透過讀取模式,就可以了,而且還有斷行,看起來會更清楚。