# 文件修改的兩種方式
# 方式一:文本編輯采用的就是這種方式
# 實現思路:將文件內容發一次性全部讀入內存,然后在內存中修改完畢后再覆蓋寫回原文件
# 優點: 在文件修改過程中同一份數據只有一份
# 缺點: 會過多地占用內存
# with open('c.txt',mode='rt',encoding='utf-8') as f:
# res=f.read()
# data=res.replace('alex','dsb')
# print(data)
#
# with open('c.txt',mode='wt',encoding='utf-8') as f1:
# f1.write(data)
# 方式二:
import os
# 實現思路:以讀的方式打開原文件,以寫的方式打開一個臨時文件,一行行讀取原文件內容,修改完后寫入臨時文件...,刪掉原文件,將臨時文件重命名原文件名
# 優點: 不會占用過多的內存
# 缺點: 在文件修改過程中同一份數據存了兩份
with open('c.txt', mode='rt', encoding='utf-8') as f, \
open('.c.txt.swap', mode='wt', encoding='utf-8') as f1:
for line in f:
f1.write(line.replace('alex', 'dsb'))
os.remove('c.txt')
os.rename('.c.txt.swap', 'c.txt')