文件修改的兩種方式

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

1、方式一

將硬盤存放的該文件的內容所有加載到內存,在內存中是能夠修改的,修改完畢後,再由內存覆蓋到硬盤(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...

2、方式二

將硬盤存放的該文件的內容一行一行地讀入內存,修改完畢就寫入新文件,最後用新文件覆蓋源文件。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模塊的方法,把原文件刪除,重命名新文件爲原文件名,達到以假亂真的目的。內存

相關文章
相關標籤/搜索