iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0
Software Development

學會 Python 不可怕:我每天學一點的 30 天筆記系列 第 20

Day20 : 檔案讀寫 – 讀取文字檔、寫入檔案

  • 分享至 

  • xImage
  •  

在 Python 中,可以使用內建的 open() 函式來操作檔案。常見的模式有:

  • "r" → 讀取 (read)
  • "w" → 寫入 (write),會覆蓋舊內容
  • "a" → 附加 (append),寫在檔案尾巴
  • "r+" → 同時讀寫 (read & write)

1. 寫入檔案
https://ithelp.ithome.com.tw/upload/images/20251004/20178872wiTVibPzrm.png

  • open("notes.txt", "w", encoding="utf-8"):這行意思是「打開檔案,回傳一個「檔案物件」」
  • "notes.txt" → 檔案名稱
  • "w" → 寫入模式 (write),會有兩種情況:
    1.如果檔案不存在,就會自動新建一個檔案
    2.如果檔案已經存在,會先把內容清空,再重新寫
  • encoding="utf-8" → 告訴 Python 用 UTF-8 編碼,這樣中文才不會亂碼
  • as f:把這個檔案物件取一個名字叫 f,之後就用 f 來操作檔案
  • with:確保在縮排區塊裡做完事情後,檔案會自動關閉,不用自己寫 f.close()
  • 可以把 with ... as f 想成:幫你自動開檔案,等你寫完就幫你自動關掉

2. 讀取檔案
https://ithelp.ithome.com.tw/upload/images/20251004/20178872CASlT8MsXX.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20251004/20178872nYqzLhx1P7.png

  • "notes.txt" → 是你要讀的檔案名稱
  • "r" → 模式是 read(讀取),只能讀不能寫
  • 這裡的 f 就是檔案物件,可以透過它來讀內容
  • f.read():一次把整個檔案的內容讀進來(變成一個字串)

3. 逐行讀取
https://ithelp.ithome.com.tw/upload/images/20251004/20178872prxNqQ8Lcn.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20251004/20178872XLJH0O871c.png

  • 開啟 notes.txt,模式 "r" 表示讀取
  • with 幫你自動關檔
  • for line in f : 是逐行讀取檔案
  • f 代表整個檔案,for line in f 會一次讀一行,存到變數 line 裡
  • 每一行讀進來的時候,最後面通常會有一個換行符號 \n,例如:
    檔案裡寫:這是第一行,讀進來的 line 其實是 "這是第一行\n"
  • .strip() 會把開頭和結尾的「空白字元」都去掉(包含 \n 換行)

4. 附加寫入
https://ithelp.ithome.com.tw/upload/images/20251004/201788722IkJ6krUBM.png

  • 開啟一個叫 notes.txt 的文字檔
  • "a" 表示 append (附加寫入) 模式:不會刪掉原本的內容,而是把新文字加到檔案最後
  • f.write(...) → 把括號裡的文字寫到檔案
  • "這是第三行\n" → 字串內容是 「這是第三行」,後面加了 \n 表示換行

執行完以後「不會輸出東西」,因為它的功能是把文字寫進檔案,而不是印在螢幕上
為什麼沒有輸出?
因為 f.write() 是「寫檔案」,不是 print(),它把資料寫進 notes.txt,但不會顯示在螢幕上,如果想要讓附加的結果印出來,可以這麼寫:
https://ithelp.ithome.com.tw/upload/images/20251004/20178872a23eXZws6X.png
結果就會顯示出
https://ithelp.ithome.com.tw/upload/images/20251004/20178872kNg1gSt0NC.png


上一篇
Day19 : 例外處理 – try/except、常見錯誤處理
下一篇
Day21 : 字串處理技巧 – f-string、格式化、常用方法
系列文
學會 Python 不可怕:我每天學一點的 30 天筆記21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言