天天看點

第六篇、檔案處理之檔案修改的兩種方式第六篇、檔案處理之檔案修改的兩種方式

目錄

  • 第六篇、檔案處理之檔案修改的兩種方式
    • 說明
    • 方式一
    • 方式二
    • 總結

第六篇、檔案處理之檔案修改的兩種方式

說明

檔案的資料是存放在硬碟上的,是以隻能覆寫,不能直接修改,平時看到的修改檔案都是障眼法的效果,具體的兩種實作方式

方式一

将硬碟裡的檔案全部加載到記憶體裡,記憶體是可以直接修改的,修改完了後,再由記憶體覆寫到硬碟裡

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