Python入門第6課:文件操作之讀寫文本、CSV與JSON文件
作者: 蛋皮
標簽: Python, 文件操作, 讀寫文件, 文本文件, CSV, JSON
在掌握了Python的基礎語法、數據結構和函數之后,你的程序已經能夠處理內存中的數據。但現實世界的數據通常存儲在文件中。無論是用戶的配置信息、日志記錄、數據集還是網頁內容,學會如何與文件交互是編程中不可或缺的技能。今天,我們將系統地學習Python中的文件操作,涵蓋最常見的文本文件、CSV文件和JSON文件的讀寫方法。
為什么需要文件操作?
- 持久化數據: 程序運行結束后,內存中的數據會丟失。文件可以將數據長期保存在硬盤上。
- 數據交換: 程序之間、程序與用戶之間可以通過文件共享數據(如配置文件、數據導出/導入)。
- 處理外部數據: 讀取日志文件、分析數據集、抓取網頁內容等都需要文件操作。
1. 基礎:文本文件的讀寫
文本文件(如 .txt
)是最簡單的文件類型,內容由字符組成。
核心概念:文件對象與上下文管理器
在Python中,我們通過 open()
函數打開文件,它會返回一個文件對象。操作完成后,必須使用 close()
方法關閉文件,以釋放系統資源。
然而,更推薦、更安全的方式是使用 with
語句(上下文管理器)。它能確保無論操作成功與否,文件都會被自動、正確地關閉。
打開模式 (mode)
open()
函數的 mode
參數決定了文件的打開方式:
'r'
: 讀取 (Read) - 默認模式。文件必須存在。'w'
: 寫入 (Write) - 如果文件存在,內容會被覆蓋;如果不存在,會創建新文件。'a'
: 追加 (Append) - 寫入內容會添加到文件末尾。如果文件不存在,會創建新文件。'r+'
: 讀取和寫入。'w+'
: 寫入和讀取(覆蓋模式)。'a+'
: 追加和讀取。'b'
: 二進制模式 - 通常與其他模式結合,如'rb'
,'wb'
,用于處理非文本文件(如圖片、音頻)。
讀取文本文件
# 方法1:使用 with 語句 (推薦)
filename = "example.txt"try:with open(filename, 'r', encoding='utf-8') as file:# 讀取整個文件內容content = file.read()print("整個文件內容:")print(content)# 或者逐行讀取 (適用于大文件)# file.seek(0) # 如果之前用過 read(), 需要重置文件指針到開頭# print("\n逐行讀取:")# for line in file:# print(line.strip()) # strip() 去除行尾的換行符except FileNotFoundError:print(f"文件 {filename} 未找到!")
except IOError:print(f"讀取文件 {filename} 時發生錯誤!")
寫入文本文件
filename = "output.txt"
content_to_write = "這是要寫入文件的第一行。\n"
more_content = "這是第二行。\n"try:# 'w' 模式:覆蓋寫入with open(filename, 'w', encoding='utf-8') as file:file.write(content_to_write) # 寫入字符串file.write(more_content)# 'a' 模式:追加寫入with open(filename, 'a', encoding='utf-8') as file:file.write("這是追加的第三行。\n")print(f"內容已成功寫入 {filename}")except IOError:print(f"寫入文件 {filename} 時發生錯誤!"