
- Python 基礎
- Python - 首頁
- Python - 概述
- Python - 歷史
- Python - 特性
- Python vs C++
- Python - Hello World 程式
- Python - 應用領域
- Python - 直譯器
- Python - 環境設定
- Python - 虛擬環境
- Python - 基本語法
- Python - 變數
- Python - 資料型別
- Python - 型別轉換
- Python - Unicode 系統
- Python - 字面量
- Python - 運算子
- Python - 算術運算子
- Python - 比較運算子
- Python - 賦值運算子
- Python - 邏輯運算子
- Python - 位運算子
- Python - 成員運算子
- Python - 身份運算子
- Python - 運算子優先順序
- Python - 註釋
- Python - 使用者輸入
- Python - 數字
- Python - 布林值
- Python 控制語句
- Python - 控制流
- Python - 決策
- Python - if 語句
- Python - if else
- Python - 巢狀 if
- Python - Match-Case 語句
- Python - 迴圈
- Python - for 迴圈
- Python - for-else 迴圈
- Python - while 迴圈
- Python - break 語句
- Python - continue 語句
- Python - pass 語句
- Python - 巢狀迴圈
- Python 函式 & 模組
- Python - 函式
- Python - 預設引數
- Python - 關鍵字引數
- Python - 僅限關鍵字引數
- Python - 位置引數
- Python - 僅限位置引數
- Python - 可變引數
- Python - 變數作用域
- Python - 函式註解
- Python - 模組
- Python - 內建函式
- Python 字串
- Python - 字串
- Python - 字串切片
- Python - 修改字串
- Python - 字串連線
- Python - 字串格式化
- Python - 跳脫字元
- Python - 字串方法
- Python - 字串練習
- Python 列表
- Python - 列表
- Python - 訪問列表元素
- Python - 修改列表元素
- Python - 新增列表元素
- Python - 刪除列表元素
- Python - 迴圈遍歷列表
- Python - 列表推導式
- Python - 對列表排序
- Python - 複製列表
- Python - 合併列表
- Python - 列表方法
- Python - 列表練習
- Python 元組
- Python - 元組
- Python - 訪問元組元素
- Python - 更新元組
- Python - 解包元組
- Python - 迴圈遍歷元組
- Python - 合併元組
- Python - 元組方法
- Python - 元組練習
- Python 集合
- Python - 集合
- Python - 訪問集合元素
- Python - 新增集合元素
- Python - 刪除集合元素
- Python - 迴圈遍歷集合
- Python - 合併集合
- Python - 複製集合
- Python - 集合運算子
- Python - 集合方法
- Python - 集合練習
- Python 字典
- Python - 字典
- Python - 訪問字典元素
- Python - 修改字典元素
- Python - 新增字典元素
- Python - 刪除字典元素
- Python - 字典檢視物件
- Python - 迴圈遍歷字典
- Python - 複製字典
- Python - 巢狀字典
- Python - 字典方法
- Python - 字典練習
- Python 陣列
- Python - 陣列
- Python - 訪問陣列元素
- Python - 新增陣列元素
- Python - 刪除陣列元素
- Python - 迴圈遍歷陣列
- Python - 複製陣列
- Python - 反轉陣列
- Python - 對陣列排序
- Python - 合併陣列
- Python - 陣列方法
- Python - 陣列練習
- Python 檔案處理
- Python - 檔案處理
- Python - 寫入檔案
- Python - 讀取檔案
- Python - 重新命名和刪除檔案
- Python - 目錄
- Python - 檔案方法
- Python - OS 檔案/目錄方法
- Python - OS 路徑方法
- 面向物件程式設計
- Python - OOPs 概念
- Python - 類 & 物件
- Python - 類屬性
- Python - 類方法
- Python - 靜態方法
- Python - 建構函式
- Python - 訪問修飾符
- Python - 繼承
- Python - 多型
- Python - 方法重寫
- Python - 方法過載
- Python - 動態繫結
- Python - 動態型別
- Python - 抽象
- Python - 封裝
- Python - 介面
- Python - 包
- Python - 內部類
- Python - 匿名類和物件
- Python - 單例類
- Python - 包裝器類
- Python - 列舉
- Python - 反射
- Python 錯誤 & 異常
- Python - 語法錯誤
- Python - 異常
- Python - try-except 塊
- Python - try-finally 塊
- Python - 丟擲異常
- Python - 異常鏈
- Python - 巢狀 try 塊
- Python - 使用者定義異常
- Python - 日誌記錄
- Python - 斷言
- Python - 內建異常
- Python 多執行緒
- Python - 多執行緒
- Python - 執行緒生命週期
- Python - 建立執行緒
- Python - 啟動執行緒
- Python - 連線執行緒
- Python - 執行緒命名
- Python - 執行緒排程
- Python - 執行緒池
- Python - 主執行緒
- Python - 執行緒優先順序
- Python - 守護執行緒
- Python - 執行緒同步
- Python 同步
- Python - 執行緒間通訊
- Python - 執行緒死鎖
- Python - 中斷執行緒
- Python 網路
- Python - 網路
- Python - 套接字程式設計
- Python - URL 處理
- Python - 泛型
- Python 庫
- NumPy 教程
- Pandas 教程
- SciPy 教程
- Matplotlib 教程
- Django 教程
- OpenCV 教程
- Python 雜項
- Python - 日期 & 時間
- Python - 數學
- Python - 迭代器
- Python - 生成器
- Python - 閉包
- Python - 裝飾器
- Python - 遞迴
- Python - 正則表示式
- Python - PIP
- Python - 資料庫訪問
- Python - 弱引用
- Python - 序列化
- Python - 模板
- Python - 輸出格式化
- Python - 效能測量
- Python - 資料壓縮
- Python - CGI 程式設計
- Python - XML 處理
- Python - GUI 程式設計
- Python - 命令列引數
- Python - 文件字串
- Python - JSON
- Python - 傳送電子郵件
- Python - 擴充套件
- Python - 工具/實用程式
- Python - GUIs
- Python 高階概念
- Python - 抽象基類
- Python - 自定義異常
- Python - 高階函式
- Python - 物件內部
- Python - 記憶體管理
- Python - 元類
- Python - 使用元類進行超程式設計
- Python - 模擬和存根
- Python - 猴子補丁
- Python - 訊號處理
- Python - 型別提示
- Python - 自動化教程
- Python - Humanize 包
- Python - 上下文管理器
- Python - 協程
- Python - 描述符
- Python - 診斷和修復記憶體洩漏
- Python - 不可變資料結構
- Python 有用資源
- Python - 問答
- Python - 線上測驗
- Python - 快速指南
- Python - 參考
- Python - 速查表
- Python - 專案
- Python - 有用資源
- Python - 討論
- Python 編譯器
- NumPy 編譯器
- Matplotlib 編譯器
- SciPy 編譯器
Python - 檔案處理
Python 中的檔案處理
Python 中的檔案處理涉及與計算機上的檔案進行互動,以讀取檔案中的資料或向其中寫入資料。Python 提供了幾個內建函式和方法用於建立、開啟、讀取、寫入和關閉檔案。本教程涵蓋了 Python 中檔案處理的基礎知識以及示例。
在 Python 中開啟檔案
要執行任何檔案操作,第一步是開啟檔案。Python 的內建 open() 函式用於以各種模式開啟檔案,例如讀取、寫入和追加。在 Python 中開啟檔案的語法如下:
file = open("filename", "mode")
其中,filename 是要開啟的檔名,mode 是開啟檔案的模式(例如,'r' 表示讀取,'w' 表示寫入,'a' 表示追加)。
檔案開啟模式
以下是檔案開啟模式:
序號 | 模式 & 描述 |
---|---|
1 | r 僅開啟檔案以進行讀取。檔案指標放置在檔案開頭。這是預設模式。 |
2 | rb 以二進位制格式開啟檔案以進行讀取。檔案指標放置在檔案開頭。這是預設模式。 |
3 | r+ 開啟檔案以進行讀取和寫入。檔案指標放置在檔案開頭。 |
4 | rb+ 以二進位制格式開啟檔案以進行讀取和寫入。檔案指標放置在檔案開頭。 |
5 | w 僅開啟檔案以進行寫入。如果檔案存在,則覆蓋檔案。如果檔案不存在,則建立一個新檔案以進行寫入。 |
6 | b 以二進位制模式開啟檔案 |
7 | t 以文字模式開啟檔案(預設) |
8 | + 開啟檔案以進行更新(讀取和寫入) |
9 | wb 以二進位制格式開啟一個檔案,僅用於寫入。如果檔案存在,則覆蓋該檔案。如果檔案不存在,則建立一個新檔案用於寫入。 |
10 | w+ 開啟一個檔案,既可以寫入也可以讀取。如果檔案存在,則覆蓋現有檔案。如果檔案不存在,則建立一個新的檔案用於讀寫。 |
11 | wb+ 以二進位制格式開啟一個檔案,既可以寫入也可以讀取。如果檔案存在,則覆蓋現有檔案。如果檔案不存在,則建立一個新的檔案用於讀寫。 |
12 | a 開啟一個檔案用於追加。如果檔案存在,則檔案指標位於檔案末尾。也就是說,檔案處於追加模式。如果檔案不存在,則建立一個新檔案用於寫入。 |
13 | ab 以二進位制格式開啟一個檔案用於追加。如果檔案存在,則檔案指標位於檔案末尾。也就是說,檔案處於追加模式。如果檔案不存在,則建立一個新檔案用於寫入。 |
14 | a+ 開啟一個檔案,既可以追加也可以讀取。如果檔案存在,則檔案指標位於檔案末尾。檔案以追加模式開啟。如果檔案不存在,則建立一個新的檔案用於讀寫。 |
15 | ab+ 以二進位制格式開啟一個檔案,既可以追加也可以讀取。如果檔案存在,則檔案指標位於檔案末尾。檔案以追加模式開啟。如果檔案不存在,則建立一個新的檔案用於讀寫。 |
16 | x 以獨佔方式建立開啟,如果檔案已存在則失敗 |
一旦檔案被開啟並且您擁有一個檔案物件,您就可以獲取與該檔案相關的各種資訊。
示例 1
在以下示例中,我們以不同的模式開啟一個檔案:
# Opening a file in read mode file = open("example.txt", "r") # Opening a file in write mode file = open("example.txt", "w") # Opening a file in append mode file = open("example.txt", "a") # Opening a file in binary read mode file = open("example.txt", "rb")
示例 2
在這裡,我們以二進位制寫入模式 ("wb") 開啟名為 "foo.txt" 的檔案,列印其名稱、是否已關閉以及其開啟模式,然後關閉檔案:
# 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) fo.close()
它將產生以下輸出:
Name of the file: foo.txt Closed or not: False Opening mode: wb
在 Python 中讀取檔案
在 Python 中讀取檔案包括以允許讀取的模式開啟檔案,然後使用各種方法從檔案中提取資料。Python 提供了幾種方法來讀取檔案中的資料:
read() - 讀取整個檔案。
readline() - 一次讀取一行。
readlines - 將所有行讀取到列表中。
要讀取檔案,您需要以讀取模式開啟它。open() 函式的預設模式是讀取模式 ('r'),但顯式指定它是一個好習慣。
示例:使用 read() 方法
在以下示例中,我們使用 read() 方法將整個檔案讀取到單個字串中:
with open("example.txt", "r") as file: content = file.read() print(content)
以下是獲得的輸出:
Hello!!! Welcome to TutorialsPoint!!!
示例:使用 readline() 方法
在這裡,我們使用 readline() 方法一次讀取一行,使其成為逐行讀取大型檔案的記憶體高效方法:
with open("example.txt", "r") as file: line = file.readline() while line: print(line, end='') line = file.readline()
以上程式碼的輸出如下所示:
Hello!!! Welcome to TutorialsPoint!!!
示例:使用 readlines() 方法
現在,我們使用 readlines() 方法讀取整個檔案並將其拆分為一個列表,其中每個元素都是一行:
with open("example.txt", "r") as file: lines = file.readlines() for line in lines: print(line, end='')
我們得到如下輸出:
Hello!!! Welcome to TutorialsPoint!!!
在 Python 中寫入檔案
在 Python 中寫入檔案包括以允許寫入的模式開啟檔案,然後使用各種方法向檔案新增內容。
要將資料寫入檔案,請使用 write() 或 writelines() 方法。當以寫入模式 ('w') 開啟檔案時,檔案中的現有內容將被擦除。
示例:使用 write() 方法
在此示例中,我們使用 write() 方法將傳遞給它的字串寫入檔案。如果檔案以 'w' 模式開啟,它將覆蓋任何現有內容。如果檔案以 'a' 模式開啟,它將字串追加到檔案末尾:
with open("foo.txt", "w") as file: file.write("Hello, World!") print ("Content added Successfully!!")
以上程式碼的輸出如下:
Content added Successfully!!
示例:使用 writelines() 方法
在這裡,我們使用 writelines() 方法獲取一個字串列表,並將每個字串寫入檔案。它可用於一次寫入多行:
lines = ["First line\n", "Second line\n", "Third line\n"] with open("example.txt", "w") as file: file.writelines(lines) print ("Content added Successfully!!")
獲得的結果如下:
Content added Successfully!!
在 Python 中關閉檔案
我們可以使用 close() 方法在 Python 中關閉檔案。關閉檔案是檔案處理中的一個重要步驟,以確保檔案使用的所有資源都得到正確釋放。在操作完成後關閉檔案非常重要,以防止資料丟失並釋放系統資源。
示例
在此示例中,我們開啟檔案以進行寫入,將資料寫入檔案,然後使用 close() 方法關閉檔案:
file = open("example.txt", "w") file.write("This is an example.") file.close() print ("File closed successfully!!")
產生的輸出如下所示:
File closed successfully!!
使用 "with" 語句自動關閉檔案
對於檔案操作,with 語句是 Python 中的最佳實踐,因為它確保在程式碼塊退出時自動關閉檔案,即使發生異常也是如此。
示例
在此示例中,檔案在 with 塊結束時自動關閉,因此無需顯式呼叫 close() 方法:
with open("example.txt", "w") as file: file.write("This is an example using the with statement.") print ("File closed successfully!!")
以下是以上程式碼的輸出:
File closed successfully!!
處理關閉檔案時的異常
執行檔案操作時,務必處理潛在的異常,以確保您的程式能夠優雅地管理錯誤。
在 Python 中,我們使用try-finally塊來處理關閉檔案時的異常。"finally" 塊確保無論 try 塊中是否發生錯誤,檔案都將被關閉:
try: file = open("example.txt", "w") file.write("This is an example with exception handling.") finally: file.close() print ("File closed successfully!!")
執行以上程式碼後,我們得到以下輸出:
File closed successfully!!