更新於 2024/10/30閱讀時間約 7 分鐘

[Python教學] 初級:檔案操作

Python 是一個功能強大的程式語言,提供了非常直觀的檔案處理方式。無論是處理數據檔案、讀取日誌文件,還是生成報表,檔案讀寫操作都是程式開發中的重要環節。這篇文章將帶你深入了解如何使用 Python 操作檔案,包括讀取和寫入、檔案模式選擇以及上下文管理器的使用。

1. 基本檔案讀取與寫入

在 Python 中,我們可以使用內建的 open() 函數來操作檔案。這個函數會返回一個文件物件,該物件可以進行讀取和寫入等操作。檔案操作的基本流程如下:

  1. 開啟檔案
  2. 進行讀取或寫入操作
  3. 關閉檔案

1.1 檔案讀取操作

通常有三種常見的讀取方法:

  • 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()

1.2 檔案寫入操作

寫入檔案的模式包括「寫入模式 (write)」和「追加模式 (append)」。使用 write() 方法可以將字串寫入文件。

file = open("example.txt", "w")  # 開啟檔案,模式為寫入("w"
file.write("Hello, World!\n")
file.write("這是一段文字。\n")
file.close()
  • w 模式:如果檔案存在,則會清空原有內容;如果檔案不存在,則會新建檔案。
  • a 模式:在文件末尾追加內容,而不會覆蓋原內容。

2. 檔案模式選擇

open() 函數的第二個參數定義了文件的「開啟模式」:

模式描述

r

讀取模式。若文件不存在,則會引發錯誤。

w

寫入模式。會清空文件內容或新建文件。

a

追加模式。在文件末尾寫入而不清空原內容。

r+

讀寫模式。允許讀取和寫入,文件必須存在。

w+

讀寫模式。先清空文件內容,若文件不存在則新建。

a+

追加讀寫模式。若文件不存在則新建,追加內容。

例如,以下範例展示了使用 r+ 模式同時讀取和寫入檔案:

file = open("example.txt", "r+")
print(file.read()) # 讀取文件內容
file.write("\n追加內容") # 寫入新內容
file.close()

3. 上下文管理 (with 語法)

使用 with 語句來開啟檔案可以確保在操作完成後自動關閉文件,這樣我們就不需要手動調用 close()。這種方法稱為「上下文管理器」,非常方便且可以避免文件未正確關閉的問題。

以下是一個使用 with 語法進行檔案操作的範例:

with open("example.txt", "r") as file:
content = file.read()
print(content)
# 文件在 with 語句結束時自動關閉

這個範例中,文件會在 with 區塊執行完成後自動關閉,無需我們手動調用 close() 函數。

3.1 結合上下文管理進行寫入

上下文管理器也適用於寫入操作。以下範例演示了如何使用 with 語句在文件末尾追加內容:

with open("example.txt", "a") as file:
file.write("\n這是追加的內容。")
# 文件已自動關閉

4. 範例:完整的檔案操作流程

下面是一個結合檔案讀取和寫入操作的完整範例,展示如何讀取檔案、追加新內容,並使用上下文管理器確保文件正確關閉。

假設我們有一個 example.txt 文件,內容如下:

初始內容。
這是文件的第一行。
這是文件的第二行。

我們的程式會:

  1. 讀取並顯示文件內容。
  2. 追加一行新的內容。
  3. 再次讀取並顯示更新後的內容。
# 讀取並顯示初始內容
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 語句作為上下文管理器可以自動管理文件的開關,簡化代碼結構,避免文件未正確關閉的風險。熟練掌握檔案的讀取、寫入、模式選擇以及上下文管理器的使用,可以讓你的程式更加穩健、高效。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.