一、檔案處理基本形式
# 1. 開啟檔案,得到檔案控制程式碼並賦值給一個變數 # 檔案控制程式碼 = open(`檔案路徑`, `模式`, `操作檔案的字元編碼`) f = open(`carter`, `r`, encoding=`UTF-8`) # 預設開啟模式就為r # 2. 通過控制程式碼對檔案進行操作 data = f.read() print(data) # 3. 關閉檔案 f.close() # 回收作業系統的資源
二、開啟檔案的模式
1. 開啟檔案的模式有(預設為文字模式):
r ,只讀模式【預設模式,檔案必須存在,不存在則丟擲異常】 w,只寫模式【不可讀;不存在則建立;存在則清空內容】 a, 之追加寫模式【不可讀;不存在則建立;存在則只追加內容】 2. 對於非文字檔案,我們只能使用b模式,"b"表示以位元組的方式操作(而所有檔案也都是以位元組的形式儲存的,使用這種模式無需考慮文字檔案的字元編碼、圖片檔案的jgp格式、視訊檔案的avi格式)
rb wb ab 注:以b方式開啟時,讀取到的內容是位元組型別,寫入時也需要提供位元組型別,不能指定編碼 3. 瞭解部分
"+" 表示可以同時讀寫某個檔案 r+, 讀寫【可讀,可寫】 w+,寫讀【可讀,可寫】 a+, 寫讀【可讀,可寫】 x, 只寫模式【不可讀;不存在則建立,存在則報錯】 x+ ,寫讀【可讀,可寫】 xb
三、操作檔案的方法
f.read() #讀取所有內容,游標移動到檔案末尾 f.readline() #讀取一行內容,游標移動到第二行首部 f.readlines() #讀取每一行內容,存放於列表中 f.write(`1111 222 `) #針對文字模式的寫,需要自己寫換行符 f.write(`1111 222 `.encode(`utf-8`)) #針對b模式的寫,需要自己寫換行符 f.writelines([`333 `,`444 `]) #檔案模式 f.writelines([bytes(`333 `,encoding=`utf-8`),`444 `.encode(`utf-8`)]) #b模式 #瞭解 f.readable() #檔案是否可讀 f.writable() #檔案是否可讀 f.closed #檔案是否關閉 f.encoding #如果檔案開啟模式為b,則沒有該屬性 f.flush() #立刻將檔案內容從記憶體刷到硬碟 f.name
小練習
while True: msg = """ 33[0;34m1 註冊 2 檢視 33[0m """ print(msg) choice = input(`