1. 程式人生 > 實用技巧 >python學習筆記--檔案讀寫

python學習筆記--檔案讀寫

首先說一下讀寫的概念,計算機中的概念有cpu,記憶體,磁碟的概念,而讀寫是發生在磁碟上的,比如我們說讀取一個txt檔案,實際上是去磁碟中讀取這個檔案。而這些資料讀出來之後都會駐留在記憶體,這個後面再說。

鑑於讀寫是相對磁碟上的檔案而言,那麼我們操作情況就會有,開啟檔案,對檔案操作,關閉檔案三個基本型別。

首先說開啟,開啟會涉及python自帶的open方法,他提供的兩個常用引數是:檔案位置,開啟方式。

舉例:開啟D:\Automatior\IPC_Automatior\study\\text1.txt" 這個路徑下檔案,並且用讀的方式

fr = open("D:\Automatior\IPC_Automatior\study\\text1.txt", "r")

這就打開了這個檔案

開啟方式指的是,通過特定的方式開啟檔案,以下說明各種開啟方式的區別

# r    以只讀方式開啟檔案。這是預設模式。檔案必須存在,不存在丟擲錯誤
#rb    以二進位制格式開啟一個檔案用於只讀。
#r+    開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。讀完就追加。
#w    開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
#w+    開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
#a    開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
#a+    開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。

可以看出不同開啟方式對開啟後的操作是有影響的。
第二個說檔案操作,通過第一步的開啟方式決定了可以執行什麼操作,如果用了只讀方式開啟,此時呼叫寫的方法,就會報錯,同樣,用只寫的方式開啟,對檔案進行讀取操作也會報錯
f = open("D:\Automatior\IPC_Automatior\study\\text1.txt", "w")

f.write("這是測試內容1")
f.read()
f.close()
比如這裡用w方式開啟,呼叫read方法時就出現報錯。
這些概念都比較好理解,不再多說。
最後還有一個一定要做的事情就是關閉檔案,當我們開啟一個檔案操作以後,一定要關閉檔案,不然這個檔案會一直佔用cpu和記憶體。而且會出現一些不可預期的錯誤。
也就是close方式一定要執行。
但是這裡有個問題,既然一定要關閉,但是如果在讀寫時就報錯了,那close就不會執行怎麼辦。很明顯,我們這裡需要對這個異常進行處理
也就是
try:
f = open("D:\Automatior\IPC_Automatior\study\\text1.txt", "w")

f.write("這是測試內容1")
f.read()
finally:
f.close()
這裡又有一個知識點,為什麼用finally,因為finally是區別except的,except如果try中沒有丟擲異常。則不會執行,而finally不管try中是什麼情況,始終會執行finally中的內容,也就是上面始終會關閉檔案。
但是這麼寫實際上很麻煩,python提供了簡化程式碼。通過with語句可以自動呼叫close方法
with open("D:\Automatior\IPC_Automatior\study\\text1.txt", "w") as f:
f.write("這是測試內容1")
f.read()
以上就在對檔案操作後自動呼叫close 方法關閉檔案,不關檔案在操作時是否丟擲異常。
以上就是對檔案的一些簡單操作,學如逆水行舟,不進則退,勉勵自己。