講完讀檔之後,就來看看如何寫檔吧!如果要寫檔的話,只要把 open()
裡面的 "r"
改成 "w"
就好:
with open("hello.txt", "w", encoding="UTF-8") as fp:
fp.write("Hello, File!")
執行完後,可以在左邊的檔案總管裡面找到這個檔案:
如果沒有跳出 hello.txt
,可以點一下上面重新整理的按鈕。對檔案點兩下,就會跳出檢視檔案的視窗:
透過這個視窗,也能直接編輯檔案內容。
當我們需要同時讀檔與寫檔時,就會用到巢狀 with
,先把上一篇提供的檔案再上傳一次,然後來試著將該檔案每行的文字都反過來,並寫進另外一個檔案裡面:
with open("zh-wikipedia-math.txt", "r", encoding="UTF-8") as fin:
with open("zh-wikipedia-math-reverse.txt", "w", encoding="UTF-8") as fout:
for line in fin:
line = line.strip()[::-1]
fout.write(line + "\n")
這裡用 fin
代表輸入檔案 (Input File),用 fout
代表輸出檔案 (Output File)。記得輸入與輸出的檔名不能相同,不然會把原本的檔案覆蓋掉。因為換行符號 \n
在 .strip()
的時候被消掉了,所以寫檔時要再補回來。最後透過 .write()
方法,將內容寫進檔案裡面。從
寫檔時有個需要注意的細節,當 open(..., "w")
一被執行,無論有沒有執行 .write()
,都會建立一個空白的新檔案。因此如果該檔案已經存在,那就會把檔案的內容給清空,因此使用寫入模式開啟檔案時要非常小心,不要把重要資料給清空了。