目錄
- 第六篇、檔案處理之檔案修改的兩種方式
- 說明
- 方式一
- 方式二
- 總結
第六篇、檔案處理之檔案修改的兩種方式
說明
檔案的資料是存放在硬碟上的,是以隻能覆寫,不能直接修改,平時看到的修改檔案都是障眼法的效果,具體的兩種實作方式
方式一
将硬碟裡的檔案全部加載到記憶體裡,記憶體是可以直接修改的,修改完了後,再由記憶體覆寫到硬碟裡
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...')
方式二
将硬碟存放的檔案一行行的讀到記憶體裡,修改完畢後寫入新檔案,最後用新檔案覆寫原檔案
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...')
總結
總而言之,修改檔案思路為:以讀的方式打開原檔案,以寫的方式打開一個新檔案(檔案不存在就自動建立檔案),把原檔案的内容進行修改,然後寫入新檔案,之後利用os子產品的方法,把原檔案删除,重命名為原檔案,達到障眼法的效果。
轉載于:https://www.cnblogs.com/demiao/p/11323690.html