官术网_书友最值得收藏!

6.4 文件和文件對象

文件可以看作是數據的集合,一般保存在磁盤或其他存儲介質上。

6.4.1 文件對象和open()函數

內置函數open()用于打開或創建文件對象,其語法格式如下。

其中,file是要打開或創建的文件名,如果文件不在當前路徑,需指出具體路徑;mode是打開文件的模式;buffering表示是否使用緩存(默認為-1,表示使用系統默認的緩沖區大?。?;encoding是文件的編碼。open()函數返回一個文件對象f。

在使用open()函數時可以指定打開文件的模式為'r'(只讀)、'w'(寫入,寫入前刪除舊內容)、'x'(創建新文件,如果文件存在,則導致FileExistsError)、'a'(追加)、'b'(二進制文件)、't'(文本文件,默認值)、'+'(更新,讀寫)。

open()函數默認打開模式為'rt',即文本讀取模式。

文件操作容易產生異常,而且最后需要關閉打開的文件,故一般使用try…except…finally語句,在try語句塊中執行文件的相關操作,使用except捕獲可能發生的異常,在finally語句塊中確保關閉打開的文件。

6.4.2 文件的打開、寫入、讀取和關閉

通過內置函數open()可以創建或打開文件對象;通過文件對象的實例方法write/writelines可以寫入字符串到文本文件;通過文件對象的實例方法read/readline可以讀取文本文件的內容;文件讀寫完成后,應該使用close方法關閉文件。

文本文件對象是可迭代對象,也可以使用for循環語句遍歷所有的行。

例6.8】 讀取并輸出文本文件(type_file.py)。

程序運行結果如圖6-6所示。

圖6-6 讀取并輸出文本文件

6.4.3 with語句和上下文管理協議

使用try...except...finally語句可以確保在try語句塊中獲得的資源(例如打開的文件)在finally語句塊中釋放。

為了簡化操作,Python語言中與資源相關的對象可以實現上下文管理協議。實現上下文管理協議的對象可以使用with語句:

with語句定義了一個上下文。在執行with語句時,首先調用上下文對象context的__enter__(),其返回值賦給var;離開with語句塊時,最后調用context的__exit__(),確保釋放資源。

文件對象支持使用with語句,確保打開的文件自動關閉:

例6.9】 利用with語句讀取并輸出文本文件(type_file_with.py)。

主站蜘蛛池模板: 喀什市| 米泉市| 岑溪市| 新蔡县| 石林| 土默特左旗| 镇沅| 多伦县| 聊城市| 通化县| 台南县| 呈贡县| 江西省| 阿尔山市| 蚌埠市| 麦盖提县| 渑池县| 长岛县| 新和县| 民丰县| 乐清市| 娱乐| 永宁县| 桐城市| 抚松县| 陆良县| 怀宁县| 济源市| 永和县| 沂源县| 财经| 南平市| 通许县| 黑龙江省| 东乡县| 宁城县| 彭阳县| 江陵县| 河间市| 洛南县| 静海县|