1. 程式人生 > 實用技巧 >20201217-1 檔案修改詳解

20201217-1 檔案修改詳解

# 對檔案的操作,除了常見的讀寫,還有修改
# 如果在原始檔修改,會覆蓋原始檔
# 有兩個辦法,vim 載入到記憶體中,然後才能進行修改,修改的檔案其實是在記憶體裡
# 修改後,在寫回原始檔
# 但硬碟不行,中間插一段,資料不會自動往後擠

# 另一種方式是,開啟一個檔案,修改後,寫入到新檔案中
# 不要覺得 low, 只能這麼幹

# 逐行讀取,找到後,插入寫入新內容
# 改完後,全放在新檔案裡,整個新檔案是改後的檔案
# 邊讀邊寫,如果不是需要修改的,寫到新檔案中,如果是需要修改的,改完後,在寫入

# 所以,需要同時開啟兩個檔案,一個檔案讀,另一個檔案往裡寫
1-1
# 檔案修改
#
一定會用到迴圈,需要開啟兩個檔案 # 不要寫 r+ 萬一不小心寫了呢 f = open("yesterday","r",encoding="utf-8") f_new = open("yesterday2.bak","w",encoding="utf-8") for line in f: if "肆意的快樂" in line: line = line.replace("肆意的快樂等我享受","肆意的痛苦不斷蔓延") f_new.write(line) else: f_new.write(line)
1-1-2
# 有兩行一樣的程式碼,如何只出現一次?
f = open("yesterday","r",encoding="utf-8") f_new = open("yesterday2.bak","w",encoding="utf-8") for line in f: if "肆意的快樂" in line: line = line.replace("肆意的快樂等我享受","肆意的痛苦不斷蔓延") f_new.write(line) # 這樣做,是否可行呢? # 這樣一句話就搞定了 f.close() f_new.close() ---> 喔, 我寧回昨日 肆意的快樂等我享受 突然間 我迷失了自己 喔, 我寧回昨日 肆意的痛苦不斷蔓延 突然間 我迷失了自己
# 如果不想出現兩個檔案,移回新檔案就好了