文件讀寫

轉自白月黑羽Python3教程文件讀寫python

咱們開發程序,常常須要從文本文件中讀入信息,好比從日誌文件中讀取日誌,從而分析數據信息;函數

也常常須要寫入文本信息到文件中,好比寫入操做信息到日誌文件中。編碼

在python語言中,咱們要讀寫文本文件, 首先經過內置函數open 打開一個文件。日誌

open函數會返回一個對象,咱們能夠稱之爲文件對象。code

這個返回的文件對象就包含讀取文本內容和寫入文本內容的方法。對象

前面的課程咱們剛剛學過,要寫入字符串到文件中,須要先將字符串編碼爲字節串blog

而從文本文件中讀取的文本信息都是字節串,要進行處理以前,必須先將字節串解碼爲字符串教程

文本文件讀寫

open函數的參數

要讀寫文件,首先要經過內置函數open 打開文件,得到文件對象。ip

函數open的參數以下開發

open(
    file, 
    mode='r', 
    buffering=-1, 
    encoding=None, 
    errors=None, 
    newline=None, 
    closefd=True, 
    opener=None
    ) 

  

其中下面這3個參數是咱們經常使用的。

  • 參數 file

    file參數指定了要打開文件的路徑。

    能夠是相對路徑,好比 ‘log.txt’, 就是指當前工做目錄下面的log.txt 文件 也能夠是絕對路徑,好比 ‘d:\project\log\log.txt’,

 

  • 參數 mode

    mode參數指定了文件打開的 模式 ,打開文件的模式 決定了能夠怎樣操做文件。

    經常使用的打開模式有

    • r 只讀文本模式打開,這是最經常使用的一種模式

    • w 只寫文本模式打開

    • a 追加文本模式打開

    若是咱們要 讀取文本文件內容到字符串對象中 , 就應該使用 r 模式。

    咱們能夠發現mode參數的缺省值 就是 ‘r’ 。

    就是說,調用open函數時,若是沒有指定參數mode的值,那麼該參數就使用缺省值 ‘r’,表示只讀打開。

    若是咱們要 建立一個新文件寫入內容,或者清空某個文本文件從新寫入內容, 就應該使用 ‘w’ 模式。

    若是咱們要 從某個文件末尾添加內容, 就應該使用 ‘a’ 模式。

 

  • 參數 encoding

    encoding 參數指定了讀寫文本文件時,使用的 字符編解碼 方式。

    調用open函數時,若是傳入了encoding參數值:

    後面調用write寫入字符串到文件中,open函數會使用指定encoding編碼爲字節串;
        
      後面調用read從文件中讀取內容,open函數會使用指定encoding解碼爲字符串對象

    若是調用的時候沒有傳入encoding參數值,open函數會使用系統缺省字符編碼方式。 好比在中文的Windows系統上,就是使用cp936(就是gbk編碼)。

    建議你們編寫代碼 讀寫文本文件時,都指定該參數的值。

相關文章
相關標籤/搜索