文件的數據是存放於硬盤上的,於是只存在覆蓋、不存在修改這麼一說,咱們平時看到的修改文件,都是模擬出來的效果,具體的說有兩種實現方式。vim
將硬盤存放的該文件的內容所有加載到內存,在內存中是能夠修改的,修改完畢後,再由內存覆蓋到硬盤(word,vim,nodpad++等編輯器)。編輯器
import os with open('37r.txt') as fr, \ open('37r_swap.txt', 'w') as fw: data = fr.read() # 所有讀入內存,若是文件很大,會很卡 data = data.replace('tank', 'tankSB') # 在內存中完成修改 fw.write(data) # 新文件一次性寫入原文件內容 # 刪除原文件 os.remove('37r.txt') # 重命名新文件名爲原文件名 os.rename('37r_swap.txt', '37r.txt') print('done...')
done...
將硬盤存放的該文件的內容一行一行地讀入內存,修改完畢就寫入新文件,最後用新文件覆蓋源文件。code
import os with open('37r.txt') as fr,\ open('37r_swap.txt', 'w') as fw: # 循環讀取文件內容,逐行修改 for line in fr: line = line.replace('jason', 'jasonSB') # 新文件寫入原文件修改後內容 fw.write(line) os.remove('37r.txt') os.rename('37r_swap.txt', '37r.txt') print('done...')
done...
總而言之,修改文件內容的思路爲:以讀的方式打開原文件,以寫的方式打開一個新的文件,把原文件的內容進行修改,而後寫入新文件,以後利用os模塊的方法,把原文件刪除,重命名新文件爲原文件名,達到以假亂真的目的。內存