Python 中的檔案開啟和關閉
到目前為止,您一直在讀取和寫入標準輸入和輸出。現在,我們將瞭解如何使用實際的資料檔案。
Python 預設提供處理檔案所需的基本函式和方法。您可以使用檔案物件執行大多數**檔案**操作。
open 函式
在讀取或寫入檔案之前,您必須使用 Python 內建的 open() 函式開啟它。此函式建立一個**檔案**物件,該物件將用於呼叫與其關聯的其他支援方法。
語法
file object = open(file_name [, access_mode][, buffering])
以下是引數詳細資訊 -
- **file_name** - file_name 引數是一個字串值,包含您要訪問的檔案的名稱。
- **access_mode** - access_mode 確定檔案開啟的模式,即讀取、寫入、追加等。下表中給出了所有可能值的完整列表。這是一個可選引數,預設的檔案訪問模式是讀取 (r)。
- **buffering** - 如果 buffering 值設定為 0,則不進行緩衝。如果 buffering 值為 1,則在訪問檔案時執行行緩衝。如果您將 buffering 值指定為大於 1 的整數,則將使用指示的緩衝區大小執行緩衝操作。如果為負,則緩衝區大小為系統預設值(預設行為)。
以下是開啟檔案的不同模式的列表 -
| 序號 | 模式和描述 |
|---|---|
| 1 | r 僅開啟檔案以進行讀取。檔案指標放置在檔案開頭。這是預設模式。 |
| 2 | rb 以二進位制格式開啟檔案以僅供讀取。檔案指標放置在檔案開頭。這是預設模式。 |
| 3 | r+ 開啟檔案以進行讀取和寫入。檔案指標放置在檔案開頭。 |
| 4 | rb+ 以二進位制格式開啟檔案以進行讀取和寫入。檔案指標放置在檔案開頭。 |
| 5 | w 僅開啟檔案以進行寫入。如果檔案存在,則覆蓋檔案。如果檔案不存在,則建立一個新檔案以進行寫入。 |
| 6 | wb 以二進位制格式開啟檔案以僅供寫入。如果檔案存在,則覆蓋檔案。如果檔案不存在,則建立一個新檔案以進行寫入。 |
| 7 | w+ 開啟檔案以進行寫入和讀取。如果檔案存在,則覆蓋現有檔案。如果檔案不存在,則建立一個新檔案以進行讀取和寫入。 |
| 8 | wb+ 以二進位制格式開啟檔案以進行寫入和讀取。如果檔案存在,則覆蓋現有檔案。如果檔案不存在,則建立一個新檔案以進行讀取和寫入。 |
| 9 | a 開啟檔案以進行追加。如果檔案存在,則檔案指標位於檔案末尾。也就是說,檔案處於追加模式。如果檔案不存在,則建立一個新檔案以進行寫入。 |
| 10 | ab 以二進位制格式開啟檔案以進行追加。如果檔案存在,則檔案指標位於檔案末尾。也就是說,檔案處於追加模式。如果檔案不存在,則建立一個新檔案以進行寫入。 |
| 11 | a+ 開啟檔案以進行追加和讀取。如果檔案存在,則檔案指標位於檔案末尾。檔案以追加模式開啟。如果檔案不存在,則建立一個新檔案以進行讀取和寫入。 |
| 12 | ab+ 以二進位制格式開啟檔案以進行追加和讀取。如果檔案存在,則檔案指標位於檔案末尾。檔案以追加模式開啟。如果檔案不存在,則建立一個新檔案以進行讀取和寫入。 |
檔案物件屬性
開啟檔案並獲得一個檔案物件後,您可以獲取與該檔案相關的各種資訊。
以下是與檔案物件相關的所有屬性的列表 -
| 序號 | 模式和描述 |
|---|---|
| 1 | file.closed 如果檔案已關閉,則返回 True,否則返回 False。 |
| 2 | file.mode 返回開啟檔案時使用的訪問模式。 |
| 3 | file.name 返回檔名稱。 |
| 4 | file.softspace 如果 print 需要顯式空格,則返回 False,否則返回 True。 |
示例
#!/usr/bin/python
# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace輸出
這將產生以下結果 -
Name of the file: foo.txt Closed or not : False Opening mode : wb Softspace flag : 0
close() 方法
檔案物件的 close() 方法重新整理任何未寫入的資訊並關閉檔案物件,此後無法再進行寫入。
當檔案的引用物件重新分配給另一個檔案時,Python 會自動關閉檔案。最好使用 close() 方法關閉檔案。
語法
fileObject.close()
示例
#!/usr/bin/python
# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
# Close opend file
fo.close()輸出
這將產生以下結果 -
Name of the file: foo.txt
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP