1. 程式人生 > >Python基礎(17):讀寫檔案

Python基礎(17):讀寫檔案

讀檔案

定義:通過作業系統定義的介面,從這個檔案物件中讀取資料。

步驟:只讀方式開啟檔案,讀取檔案,關閉檔案。

示例:

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()