文字檔案讀取、寫入
Python 可使用內建的 `open()` 函式讀取或寫入文字檔案。建議搭配 `with` 使用,因為離開區塊後檔案會自動關閉。
## 一、讀取文字檔案
### 常用模式
- `"r"`:讀取檔案,檔案不存在時會發生錯誤
- `"encoding='utf-8'"`:指定文字編碼,避免中文亂碼
- `.read()`:一次讀取全部內容
- `.readline()`:讀取一行
- `.readlines()`:讀取所有行並回傳清單
### 實務範例:讀取待辦事項檔案
假設 `todos.txt` 內容如下:
```text
完成 Python 作業
閱讀技術文件
準備會議資料
```
Python 程式:
```python
with open("todos.txt", "r", encoding="utf-8") as file:
todos = file.readlines()
for todo in todos:
print(todo.strip())
```
輸出結果:
```text
完成 Python 作業
閱讀技術文件
準備會議資料
```
`strip()` 可以移除每行結尾的換行字元 `\n`。
---
## 二、寫入文字檔案
### 常用模式
- `"w"`:寫入檔案,若檔案已存在會覆蓋原內容
- `"a"`:附加內容到檔案末端,不會刪除原有內容
- `"x"`:建立新檔案,若檔案已存在會發生錯誤
### 實務範例:將使用者輸入的日誌寫入檔案
```python
message = input("請輸入今天的工作紀錄:")
with open("work_log.txt", "a", encoding="utf-8") as file:
file.write(message + "\n")
print("工作紀錄已儲存。")
```
此範例使用 `"a"` 模式,因此每次執行程式時,新的紀錄會加在 `work_log.txt` 的最後,不會覆蓋之前的內容。
---
## 補充:檔案不存在時
讀取模式 `"r"` 讀取不存在的檔案會產生 `FileNotFoundError`,可以使用例外處理:
```python
try:
with open("todos.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)
except FileNotFoundError:
print("找不到指定的檔案。")
```
使用 `with open(...)` 是 Python 處理檔案時最推薦的方式,可確保檔案正確關閉。
相關學習地圖、教學課程
Python 資料工程
Python 後端工程、資料庫