Python基礎(17):讀寫檔案
阿新 • • 發佈:2019-01-02
讀檔案
定義:通過作業系統定義的介面,從這個檔案物件中讀取資料。
步驟:只讀方式開啟檔案,讀取檔案,關閉檔案。
示例:
f=open('E:\\book\\test.txt','r') #open函式開啟一個檔案,第一個引數檔名,第二個引數指開啟方式,r表示只讀
print(f.read()) #read讀取所有內容,並返回一個字串
f.close() #關閉檔案
補充:
1:open函式,r表示讀取,rb表示讀取二進位制檔案,非utf-8編碼的文字檔案,需要傳入encoding引數。遇到非法編碼字元,UnicodeDecodeError異常時,可以新增error='ignore',忽略。
2:read方法,讀取全部資料。當檔案過大時,會佔用記憶體,所以,還有其他的讀取方式:
read(size) 最多讀取size個位元組的內容
readline 每次讀取一行
readlines 一次性讀取所有內容,按行返回列表
3:每次都必須close麼?是的,沒錯,你說的對。
但是!提供兩種不用自己每次close的方法:
第一種:try…finally…語句
try: f=open('E:\\book\\test.txt','r') print(f.read()) finally: #開始執行finally if f: #如果f還存在 f.close() #關閉f物件
第二種:with語句
with open('E:\\book\\test.txt','r') as f: #開啟一個檔案,並作為物件f
print(f.read()) #with語句結束,自動關閉物件
寫檔案
定義:通過作業系統定義的介面,往這個檔案物件中寫入資料。
相較於讀檔案的相同點:
都需要open函式開啟,執行完都需要關閉檔案物件。都可以利用finally和with關閉檔案物件。
相較於讀檔案的不同點:
1:open引數,寫入文字檔案為w,寫入二進位制檔案為wb。w模式,會覆蓋原有內容,追加時,建議用a模式。
open函式的合法mode有:r、rb、r+、rb+、w、wb、w+、wb+、a、ab、a+、ab+
2:要寫入特定編碼的文字檔案,請給open()
函式傳入encoding
引數,將字串自動轉換成指定編碼。
示例:
f=open('E:\\book\\test.txt','a')
f.write('write file a+')
f.close()