Python 檔案 I/O:安全地讀寫文件
了解如何在 Python 中讀取和寫入檔案。掌握 open()、read()、write() 和上下文管理器,以安全地處理檔案操作,而不會造成資源洩漏。
概述
檔案輸入/輸出 (I/O) 是一項基本功能,可讓 Python 程式與電腦的持久儲存進行互動。無論您是建立簡單的記錄器、讀取設定檔還是處理海量資料數組,您的程式都需要一種可靠的方式來開啟、讀取、寫入和關閉磁碟上的檔案。 Python 提供了乾淨的內建函數,使檔案系統互動變得簡單且跨平台。
Python 中檔案存取的主要工具是內建的「open()」函數。該函數接受檔案路徑和模式字串。模式決定如何存取檔案:「r」表示讀取,「w」表示寫入(覆蓋檔案),「a」表示將內容附加到末尾,「b」表示二進位模式(對於影像或序列化資料有用)。至關重要的是,每當您開啟檔案時,它都會消耗作業系統句柄。如果無法關閉文件,可能會導致記憶體洩漏或文件鎖定問題。
為了確保檔案始終正確關閉,Python 開發人員使用「with」語句來實作上下文管理器。當使用 with open(...) as file: 時,一旦程式碼區塊退出,Python 就會自動關閉檔案句柄,即使內部發生意外異常。可以使用「for line in file:」逐行讀取數據,也可以透過「.read()」、「.readline()」或「.readlines()」一次讀取資料。寫入文字透過「.write()」或「.writelines()」處理,從而實現流暢、安全、高效的檔案操作。
程式碼和執行輸出
將問候語寫入臨時文字檔案並使用安全上下文管理器逐行讀回。
filename = "sample.txt"
# Writing to a file
with open(filename, "w") as file:
file.write("Hello, Python coder!\n")
file.write("This is a line in a file.\n")
file.write("File I/O is simple.\n")
print("File written successfully.\n--- Reading File ---")
# Reading from a file line by line
with open(filename, "r") as file:
for index, line in enumerate(file, 1):
print(f"Line {index}: {line.strip()}")File written successfully.
--- Reading File ---
Line 1: Hello, Python coder!
Line 2: This is a line in a file.
Line 3: File I/O is simple.逐步實施
- 記錄錯誤和程式輸出
- 讀取設定檔(例如 .env 或 config.txt)
- 儲存使用者報告或匯出的分析摘要
常見問題解答
寫入模式和追加模式有什麼差別?
寫入模式('w')將檔案截斷為零長度,在寫入之前刪除任何現有內容。追加模式('a')將遊標置於末尾,新增文字而不刪除現有內容。
為什麼要使用 with 語句?
with 語句可作為上下文管理器,確保檔案自動關閉,從而防止記憶體洩漏和鎖定檔案錯誤。
相關主題
推薦的 Python 資源
透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。