我們在前面的學習中,不管是學習哪種資料類型的操作,當我們在程式測試的時候使用的資料都沒有進行保存,如果我們要統計分析資料的相關性,那麼我們就需要將資料保存到在本地檔案中,在Python中提供了存取檔案、存取目錄、讀取檔案和寫入檔案的操作,Python的檔案物件也稱為類似檔案物件或流,本節我們先進行檔案操作的相關學習。
我們在建立或開啟檔案的時候需要使用到open()函數,它的語法結構為:
file=open(filename,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,openr=None)
在這些參數裡,我們常用到的有filname和mode,其餘的參數大家可以做簡單的了解。
filename為要建立或開啟的文件,使用單引號或雙引號,如果和當前文件在同一資料夾下,可直接寫文件的名字,如果不在則要輸入絕對路徑。
mode為參數的設定模式,指定了檔案的開啟方式,預設開啟方式為唯讀(r),常用的mode參數有r、rb、wb、xb、ab和rt、wt、xt、at,分別對應了二進位和文字文件,在使用的時候t可以省略。
可選參數,可設定緩衝模式,如果為-1則自動設定緩衝區,通常為4096或8192個字節,如果為0則關閉緩衝區直接寫入檔案。
前者為開啟檔案的編碼方式,後置指定編碼錯誤的時候處理方式。
換行方式。
文件描述時使用。
文件描述時使用。
我們透過例子來建立一個文件。
file=open('test.txt','w')file.write('第一次寫入')file=open('test.txt','r+')file.write('第二次寫入覆蓋第一次寫入')
此時我們可以發現在目前目錄下多了一個test.txt的文件,我們打開它。
我們可以發現文本中的內容為我們第二次寫入的內容,因為第一次我們是創建了這個文件,然後第二次我們再次打開這個文件,打開方式為可覆蓋的方式,第二次我們寫入的內容也就涵蓋了我們第一次寫入的內容,下面表格中統計了常用的開啟方式。
我們在透過一個例子來看一下追加模式。
程式碼如下:
file=open('test.txt','w')file.write('第一次寫入。')print(file)file=open('test.txt','a+')file.write('第二次追加寫入。
文件內容為:
第一次寫入。第二次追加寫入。
輸出結果為二進位格式:
<_io.TextIOWrappername='test.txt'mode='w'encoding='cp936'><_io.TextIOWrappername='test.txt'mode='a+'encoding='cp936'>
我們可以在寫入之後需要文件關閉掉,以確保文件中的內容不會被惡意插件修改,關閉的方式為:
file.close()
在文件使用的末尾添加即可。
關於文件的建立和打開,我們一定要注意它的開啟或建立方式,這點對我們後續的文件操作十分重要,下一節我們學習文件的讀取。