文件修改的兩種方式


文件的數據是存放於硬盤上的,因而只存在覆蓋、不存在修改這么一說,我們平時看到的修改文件,都是模擬出來的效果,具體的說有兩種實現方式。

一、方式一

將硬盤存放的該文件的內容全部加載到內存,在內存中是可以修改的,修改完畢后,再由內存覆蓋到硬盤(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...

二、方式二

將硬盤存放的該文件的內容一行一行地讀入內存,修改完畢就寫入新文件,最后用新文件覆蓋源文件。

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模塊的方法,把原文件刪除,重命名新文件為原文件名,達到以假亂真的目的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM