- Python程序設計與算法基礎教程(第2版)(微課版)
- 江紅 余青松
- 768字
- 2019-11-15 20:19:09
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)。

- 零基礎學Visual C++第3版
- Facebook Application Development with Graph API Cookbook
- Reporting with Visual Studio and Crystal Reports
- 兩周自制腳本語言
- Apache Mahout Clustering Designs
- ASP.NET程序設計教程
- Bootstrap 4 Cookbook
- 51單片機C語言開發教程
- CoffeeScript Application Development Cookbook
- Mastering Akka
- Mastering Elasticsearch(Second Edition)
- 微信小程序開發實戰:設計·運營·變現(圖解案例版)
- Mastering Adobe Captivate 7
- Python計算機視覺和自然語言處理
- Visual C++開發寶典