1. 程式人生 > >文件修改

文件修改

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‘)

文件修改