Python 是一個功能強大的程式語言,提供了非常直觀的檔案處理方式。無論是處理數據檔案、讀取日誌文件,還是生成報表,檔案讀寫操作都是程式開發中的重要環節。這篇文章將帶你深入了解如何使用 Python 操作檔案,包括讀取和寫入、檔案模式選擇以及上下文管理器的使用。
在 Python 中,我們可以使用內建的 open()
函數來操作檔案。這個函數會返回一個文件物件,該物件可以進行讀取和寫入等操作。檔案操作的基本流程如下:
通常有三種常見的讀取方法:
read()
:一次讀取整個檔案內容。readline()
:逐行讀取檔案,每次只讀取一行。readlines()
:一次讀取整個檔案,並將每一行作為一個字串儲存在列表中。以下是各種方法的範例:
# 假設有一個名為 "example.txt" 的文件
file = open("example.txt", "r") # 開啟檔案,模式為讀取("r")
content = file.read() # 一次讀取整個文件內容
print(content)
file.close() # 關閉檔案
使用 readline()
:
file = open("example.txt", "r")
line = file.readline() # 讀取文件中的第一行
print(line)
file.close()
使用 readlines()
:
file = open("example.txt", "r")
lines = file.readlines() # 將所有行讀入列表
for line in lines:
print(line)
file.close()
寫入檔案的模式包括「寫入模式 (write)」和「追加模式 (append)」。使用 write()
方法可以將字串寫入文件。
file = open("example.txt", "w") # 開啟檔案,模式為寫入("w")
file.write("Hello, World!\n")
file.write("這是一段文字。\n")
file.close()
w
模式:如果檔案存在,則會清空原有內容;如果檔案不存在,則會新建檔案。a
模式:在文件末尾追加內容,而不會覆蓋原內容。open()
函數的第二個參數定義了文件的「開啟模式」:
模式描述
r
讀取模式。若文件不存在,則會引發錯誤。
w
寫入模式。會清空文件內容或新建文件。
a
追加模式。在文件末尾寫入而不清空原內容。
r+
讀寫模式。允許讀取和寫入,文件必須存在。
w+
讀寫模式。先清空文件內容,若文件不存在則新建。
a+
追加讀寫模式。若文件不存在則新建,追加內容。
例如,以下範例展示了使用 r+
模式同時讀取和寫入檔案:
file = open("example.txt", "r+")
print(file.read()) # 讀取文件內容
file.write("\n追加內容") # 寫入新內容
file.close()
使用 with
語句來開啟檔案可以確保在操作完成後自動關閉文件,這樣我們就不需要手動調用 close()
。這種方法稱為「上下文管理器」,非常方便且可以避免文件未正確關閉的問題。
以下是一個使用 with
語法進行檔案操作的範例:
with open("example.txt", "r") as file:
content = file.read()
print(content)
# 文件在 with 語句結束時自動關閉
這個範例中,文件會在 with
區塊執行完成後自動關閉,無需我們手動調用 close()
函數。
上下文管理器也適用於寫入操作。以下範例演示了如何使用 with
語句在文件末尾追加內容:
with open("example.txt", "a") as file:
file.write("\n這是追加的內容。")
# 文件已自動關閉
下面是一個結合檔案讀取和寫入操作的完整範例,展示如何讀取檔案、追加新內容,並使用上下文管理器確保文件正確關閉。
假設我們有一個 example.txt
文件,內容如下:
初始內容。
這是文件的第一行。
這是文件的第二行。
我們的程式會:
# 讀取並顯示初始內容
with open("example.txt", "r") as file:
print("初始內容:")
print(file.read())
# 追加新內容
with open("example.txt", "a") as file:
file.write("\n這是追加的新行。")
# 再次讀取並顯示更新後的內容
with open("example.txt", "r") as file:
print("\n更新後的內容:")
print(file.read())
運行結果如下:
初始內容:
初始內容。
這是文件的第一行。
這是文件的第二行。
更新後的內容:
初始內容。
這是文件的第一行。
這是文件的第二行。
這是追加的新行。
這個範例展示了如何使用上下文管理器來進行安全的檔案操作,確保文件在所有操作完成後被正確關閉。
Python 提供了強大的檔案處理功能,透過 open()
函數的多種模式選項,開發者可以靈活選擇讀寫方式。同時,使用 with
語句作為上下文管理器可以自動管理文件的開關,簡化代碼結構,避免文件未正確關閉的風險。熟練掌握檔案的讀取、寫入、模式選擇以及上下文管理器的使用,可以讓你的程式更加穩健、高效。