文章

第12天:檔案處理

課程簡介

檔案處理是程式開發中非常重要的一部分。Python 提供了簡單且功能強大的內建函數來進行檔案讀寫操作。今天我們將學習如何開啟檔案、讀取和寫入檔案,以及如何處理常見的檔案操作錯誤。


學習內容

1. 開啟檔案

要操作檔案,首先需要使用 open() 函數來開啟檔案。open() 函數接受兩個參數:檔案名稱和模式(讀取模式、寫入模式等)。

常見的模式包括:

  • “r”: 讀取模式 (read)。如果檔案不存在,會引發錯誤。
  • “w”: 寫入模式 (write)。如果檔案不存在,會建立一個新檔案;如果檔案存在,會覆蓋檔案內容。
  • “a”: 附加模式 (append)。如果檔案存在,會在檔案末尾添加內容;如果檔案不存在,會建立一個新檔案。
  • “x”: 建立模式 (create)。如果檔案不存在,會建立一個新檔案;如果檔案存在,會引發錯誤。

範例:

1
2
3
4
# 讀取模式開啟檔案
file = open("example.txt", "r")
# 寫入模式開啟檔案
file = open("example.txt", "w")

2. 讀取檔案

Python 提供了幾種方法來讀取檔案內容:

  • read(): 讀取檔案中的所有內容。
  • readline(): 一次讀取一行。
  • readlines(): 讀取所有行,並將它們作為一個列表返回。

範例:

1
2
3
4
5
6
7
8
9
10
11
# 讀取整個檔案的內容
file = open("example.txt", "r")
content = file.read()
print(content)
file.close()

# 逐行讀取檔案內容
file = open("example.txt", "r")
for line in file:
    print(line, end="")
file.close()

3. 寫入檔案

使用 write()writelines() 方法可以將內容寫入檔案。請注意,使用 "w" 模式會覆蓋檔案的原始內容,而 "a" 模式則會在檔案末尾添加新內容。

範例:

1
2
3
4
5
6
7
8
9
10
# 寫入檔案
file = open("example.txt", "w")
file.write("Hello, world!\n")
file.write("This is a test.")
file.close()

# 附加模式寫入檔案
file = open("example.txt", "a")
file.write("\nNew line added.")
file.close()

4. 使用 with 語句進行檔案操作

使用 with 語句可以自動關閉檔案,這比手動使用 close() 方法更安全,特別是在處理大檔案或遇到錯誤時。

範例:

1
2
3
4
# 使用 with 語句自動關閉檔案
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

5. 檔案模式的區別

每種檔案模式適合不同的操作需求:

  • “r”: 讀取模式,無法寫入或新增。
  • “w”: 寫入模式,會覆蓋現有檔案。
  • “a”: 附加模式,在檔案末尾添加內容。
  • “r+”: 讀取和寫入模式,允許同時進行讀寫操作。

範例:

1
2
3
4
5
# 使用 r+ 模式同時讀取和寫入
with open("example.txt", "r+") as file:
    content = file.read()
    print("原內容:", content)
    file.write("\n追加內容")

6. 錯誤處理

在處理檔案時,可能會遇到檔案不存在或讀寫失敗的情況。可以使用 try-except 語句來處理這些錯誤,保證程式的穩定性。

範例:

1
2
3
4
5
try:
    with open("non_existing_file.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("檔案不存在,請確認檔案名稱是否正確。")

教學重點

  • 開啟檔案的不同模式:學會使用 open() 函數來開啟檔案,理解各種模式的用途。
  • 檔案讀取:學會使用 read()readline()readlines() 來讀取檔案內容。
  • 檔案寫入:掌握 write()writelines() 方法,學會如何覆蓋或附加內容到檔案。
  • 使用 with 語句:瞭解如何自動關閉檔案,避免忘記 close() 帶來的問題。
  • 錯誤處理:學會處理檔案操作中的常見錯誤,如檔案不存在。

任務

  1. 建立一個新檔案,並寫入一些文本內容,然後讀取該檔案並列印內容。
  2. 嘗試使用 "a" 模式向現有檔案中附加新內容,並確認是否成功。
  3. 使用 with 語句開啟檔案,讀取內容後自動關閉檔案。
  4. 撰寫程式,嘗試讀取一個不存在的檔案,並處理可能的錯誤。
本文章以 CC BY 4.0 授權