文件修改
阿新 • • 發佈:2018-09-22
pla lac 過程 硬盤空間 文件 Coding remove 過多 lin
須知一:
硬盤空間無法修改,硬盤中的數據更新都是用新的內容覆蓋舊的內容
內容控制可以修改
須知二:
文件對應的是硬盤空間,硬盤不能修改應為文件本質也不能修改
我們看到文件的內容可以修改,是如何實現的呢?
思路:將硬盤中文件內容讀入內存,然後在內存中修改完畢後再覆蓋回硬盤
具體的實現方式分為兩種:
1、將文件內容一次性全部讀入內存,然後在內存中修改完畢後再覆蓋寫回原文件
優點:在文件修改過程中同一份數據只有一份
缺點:會過多地占用內存
2、以讀的方式打開原文件,以寫的方式打開一個臨時文件,一行行讀取原文件內容,修改完後寫入臨時文件...,刪掉原文件,將臨時文件重命名原文件名
優點:不會占用過多的內存
缺點:在文件修改過程中同一份數據存了兩份
import os
with open(‘db.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as read_f,\
open(‘.db.txt.swap‘,mode=‘wt‘,encoding=‘utf-8‘) as wrife_f:
for line in read_f:
wrife_f.write(line.replace(‘SB‘,‘kevin‘))
os.remove(‘db.txt‘)
os.rename(‘.db.txt.swap‘,‘db.txt‘)
文件修改