第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()
帶來的問題。 - 錯誤處理:學會處理檔案操作中的常見錯誤,如檔案不存在。
任務
- 建立一個新檔案,並寫入一些文本內容,然後讀取該檔案並列印內容。
- 嘗試使用
"a"
模式向現有檔案中附加新內容,並確認是否成功。 - 使用
with
語句開啟檔案,讀取內容後自動關閉檔案。 - 撰寫程式,嘗試讀取一個不存在的檔案,並處理可能的錯誤。
本文章以 CC BY 4.0 授權