1. 程式人生 > 其它 >20201211_126_file檔案操作_作業系統底層關係_寫入檔案

20201211_126_file檔案操作_作業系統底層關係_寫入檔案

技術標籤:學習筆記_Python程式設計基礎_Pycharm版

第八章 檔案操作(IO 技術)

一個完整的程式一般都包括資料的儲存和讀取;我們在前面寫的程式資料都沒有進行實際的儲存,因此 python 直譯器執行完資料就消失了。實際開發中,我們經常需要從外部儲存介質(硬碟、光碟、U 盤等)讀取資料,或者將程式產生的資料儲存到檔案中,實現“持久化”儲存。

有基礎的同學知道,很多軟體系統是將資料儲存的資料庫中;資料庫實際也是基於檔案形式儲存的,本章我們就學習檔案的相關操作。

文字檔案和二進位制檔案

按檔案中資料組織形式,我們把檔案分為文字檔案和二進位制檔案兩大類。

  1. 文字檔案
    文字檔案儲存的是普通“字元”文字,python 預設為 unicode 字符集(兩個位元組表示一個字元,最多可以表示:65536 個),可以使用記事本程式開啟。但是,像 word 軟體編輯的文件不是文字檔案。
  2. 二進位制檔案
    二進位制檔案把資料內容用“位元組”進行儲存,無法用記事本開啟。必須使用專用的軟體解碼。常見的有:MP4 視訊檔案、MP3 音訊檔案、JPG 圖片、doc 文件等等。

檔案操作相關模組概述

Python 標準庫中,如下是檔案操作相關的模組,會陸續介紹。

名稱說明
io模組檔案流的輸入和輸出操作 input output
os模組基本作業系統功能,包括檔案操作
glob模組查詢符合特定規則的檔案路徑名
fnmatch模組使用模式來匹配檔案路徑名
fileinput模組處理多個輸入檔案
filecmp模組用於檔案的比較
csv模組用於csv檔案處理
pickle和cPickel用於序列化和反序列化
xml包用於XML資料處理
bz2、gzip、zipfile、zlib、tarfile用於壓縮和解壓縮檔案(分別對應不同的演算法)

建立檔案物件 open()

Python中一切都是物件,要對文字檔案進行讀寫操作,首先會在Python中建立一個代表文字本件的物件,這物件對映外部的文字檔案。Python對文字檔案物件的操作會被IO流同步到文字檔案中。

open()函式用於建立檔案物件,基本語法格式如下:

open(檔名[,開啟方式])

如果只是檔名,代表在當前目錄下的檔案。檔名可以錄入全路徑,比如:D:\a\b.txt。

為了避免直譯器將路徑的部分“+”誤認為轉義字元,可以在路徑字串前加r告訴直譯器對r後跟的這個字串不識別轉義字元。示例:

f = open(r"d:\b.txt","w")

開啟方式有如下幾種:

模式描述
rread,只讀模式
wwrite,寫模式。如果檔案不存在則建立檔案寫入;如果檔案已存在則重寫新內容覆蓋原內容。
aappend,追加模式。如果檔案不存在則建立檔案寫入;如果檔案已存在則在檔案原內容的末尾另起一行繼續寫入。
bbinary,二進位制模式(可與其他模式組合使用)
+讀寫模式(可與其他模式組合使用)

文字檔案物件和二進位制檔案物件的建立:
如果我們沒有增加模式“b”,則預設建立的是文字檔案物件,處理的基本單元是“字元”。
如果是二進位制模式“b”,則建立的是二進位制檔案物件,處理的基本單元是“位元組”。例如:

f = open(r"d:\b.xls","wb")

文字檔案的寫入

基本的檔案寫入操作

文字檔案的寫入一般就是三個步驟:

  1. 建立檔案物件
  2. 寫入資料
  3. 關閉檔案物件

為什麼要關閉檔案物件?
Python是通過直譯器呼叫作業系統的資源對系統中的檔案進行操作,關閉檔案物件是為了同時釋放掉對檔案進行操作佔用的系統資源。

我們建立一個小程式,體驗一下文字檔案的寫入操作:
【例】文字寫入操作簡單測試

f = open(r'a.txt','a')
s = '好好學習\n天天向上'
f.write(s)
f.close()

執行結果:
在這裡插入圖片描述