python學習筆記14(檔案讀寫)
阿新 • • 發佈:2019-01-04
檔案讀寫
讀檔案
python讀檔案流程:
1、開啟檔案
2、讀檔案內容
3、關閉檔案
註釋:
1、開啟檔案
open(path, flag[, encoding][, errors])
path: 要開啟檔案的路徑(路徑前加r)
flag: 開啟方式:
r----以只讀的方式開啟檔案,檔案的描述符放在檔案的開頭
rb----以二進位制格式開啟一個檔案用於只讀,檔案的描述符放在檔案的開頭
r±—開啟一個檔案用於讀寫,檔案的描述符放在檔案的開頭
w----開啟一個檔案只用於寫入,如果該檔案已經存在會覆蓋,如果不存在則建立新檔案
wb----開啟一個檔案值用於寫入二進位制,如果該檔案已經存在會覆蓋,如果不存在則建立新檔案
w±—開啟一個檔案用於讀寫
a----開啟一個檔案用於追加,如果檔案存在,檔案描述符將會放到檔案末尾
encoding:
errors: 錯誤處理
示例:
path = r"C:\Users\xgg\Desktop\Python\檔案讀寫\file1.txt"
#ignore 忽略錯誤
#f = open(path, "r", encoding="utf-8", errors="ignore")
f = open(path, "r", encoding="utf-8")
2、讀檔案內容
#1、讀取檔案全部內容 str1 = f.read() print(str1) #2、讀取指定字元數 #str2 = f.read(10) #print("*"+str2+"*") #str3 = f.read(10) #print("*"+str3+"*") #3、讀取整行,包括"\n"字元 #str4 = f.readline() #print(str4) #str5 = f.readline() #print(str5) #4、讀取指定字元數 #str6 = f.readline(10) #print(str6) #5、讀取所有行並返回列表 #list7 = f.readlines() #print(list7) #6若給定的數字大於0,返回實際size位元組的行數 #list8 = f.readlines(25) #print(list8) print("*****") #修改描述符的位置 f.seek(10) str9 = f.read() print(str9)
3、關閉檔案
f.close()
完整的示例
try:
f1 = open(path, "r", encoding="utf-8")
print(f1.read())
finally:
if f1:
f1.close()
with……as 語句:
作用: 用於某些任務,可能事先需要設定,事後要做清理工作。
用法: with所求值的物件必須有一個__enter__()方法,一個__exit__()方法,緊跟with後面的語句被求值後,返回物件的__enter__()方法被呼叫,這個方法的返回值將被賦值給as後面的變數。當with後面的程式碼塊全部被執行完之後,將呼叫前面返回物件的__exit__()方法。
#用with as語句讀檔案
with open(path, "r", encoding="utf-8") as f2:
print(f2.read())
寫檔案
寫檔案過程:
1、將資訊寫入緩衝區
f.write("sunck in")
2、重新整理緩衝區: 直接把內部緩衝區的資料立刻寫入檔案,而不是被動的等待自動重新整理緩衝區寫入
f.flush()
完整示例:
f = open(path, "a") #開啟檔案
f.write("sunck in") #寫入字串
f.flush() #重新整理
f.close() #關閉檔案
with open(path, "a") as f2:
f2.write("good man")
使用pickle包讀寫
用來讀寫list、tuple、dict、set檔案操作
示例:
import pickle #資料永續性模組
myList = (1,2,3,4,5,"sunck is a good man")
path = r"C:\Users\xgg\Desktop\Python\檔案讀寫\file.txt"
f = open(path, "wb") #開啟檔案
pickle.dump(myList, f) #寫入
f.close() #關閉
#讀取
f1 = open(path, "rb") #開啟
tempList= pickle.load(f1) #載入
print(tempList)
f1.close() #關閉