一篇搞懂python文件讀寫操作(r/r+/rb/w/w+/wb/a/a+/ab)

   

       關於文件操作的幾種常用方式,網上已有很多解說,內容很豐富,但也因此有些雜亂複雜。今天,我就以我個人的學習經驗寫一篇詳細又易懂的總結文章,希望大家看完之後會有所收穫。

 

一、核心功能

 

‘r’只讀。該文件必須已存在。

‘r+’可讀可寫。該文件必須已存在,寫爲追加在文件內容末尾。

‘rb’:表示以二進制方式讀取文件。該文件必須已存在。

‘w’只寫。打開即默認創建一個新文件,如果文件已存在,則覆蓋寫(即文件內原始數據會被新寫入的數據清空覆蓋)。

‘w+’寫讀。打開創建新文件並寫入數據,如果文件已存在,則覆蓋寫。

‘wb’:表示以二進制寫方式打開,只能寫文件, 如果文件不存在,創建該文件;如果文件已存在,則覆蓋寫。

‘a’追加寫。若打開的是已有文件則直接對已有文件操作,若打開文件不存在則創建新文件,只能執行寫(追加在後面),不能讀。

‘a+’追加讀寫。打開文件方式與寫入方式和'a'一樣,但是可以讀。需注意的是你若剛用‘a+’打開一個文件,一般不能直接讀取,因爲此時光標已經是文件末尾,除非你把光標移動到初始位置或任意非末尾的位置。(可使用seek() 方法解決這個問題,詳細請見下文Model 8 示例)



         看完上面各個模式的釋義,可能有的人會覺得一堆文字有些枯燥,我一開始也是覺得如此,but,看似那麼多模式,無非是三大類:讀r(read),寫w(write),追加a(append)。

        當然,我會用盡可能精短的代碼爲大家解釋,文件操作各個模式具體如何使用。請繼續往下看

 

 

二、示例解說

 

Model 1: r ---只讀模式

注意:test2.txt 必須文件是已存在的。順便說一下字符編碼。因爲Windows操作系統默認字符編碼爲GBK,而Python默認Unicode.utf-8,如果不寫“ encoding=‘utf-8' "就會報錯。

 

Model 2: r+ ---可讀可寫模式

 

Model 3: rb ---以二進制方式讀取文件

 

Model 4: w ---只寫模式

 

Model 5: w+ ---寫讀模式


Model 6: wb+ ---以二進制方式讀寫文件

 

Model 7: a ---追加寫模式



Model 8: a+ ---追加讀寫模式

 

 

三、附加乾貨

    以下是文件操作中常用的一些方法:

print(f.readline())    # 打印一行
print(f.readline(5))   # 打印前5個字符
print(f.tell())        # 打印當前指針位置
print(f.read())        # 讀完文件後,指針在最尾處
f.seek(0)              # 如要重頭到尾再讀,文件指針須先回到文件頭(0-文件頭,默認值; 1-當前位置; 2-文件尾)
print(f.read())        # 重讀文件
print(f.encoding)      # 打印當前使用的字符編碼
print(f.name)          # 打印文件名
print(f.flush())       # 刷新
f.truncate()           # 清空文件
f.truncate(12)         # 從頭開始,第12個字符後截斷並清除
f.close()              # 關閉文件

 

       以上的知識點,只要你理解並掌握了,以後在Python中進行文件操作的時候就能如行雲流水般自然流暢啦~

 

- End -

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章