文件内容修改-Day3

一、文件修改

1、文件修改原理

文件默认存在硬盘中,硬盘中的数据只能覆盖,不能插入,所以一般vim或者word修改一个文件,都是重新创建一个文件,并覆盖原文件。

 

2、文件修改方式

方式一:先把文件内容一次性读入内存,在内存中修改完毕后,再覆盖回硬盘

  • 优点:在文件修改期间始终保存一份数据
  • 缺点:在文件内容过大的情况下,会占用过多内存
with open('src.txt','r',encoding='utf-8') as f:
    data=f.read()
    data=data.replace('武大郎','武藤兰')

with open('src.txt','w',encoding='utf-8') as f:
    f.write(data)

 

方法二:先把文件内容一行一行的读入内存,修改完毕后存入一个新文件,整体修改完毕后,再删除原文件,将新文件改名为原文件名

  • 优点:同一时间在内存中只有一行内容,不会过多的占用内存
  • 缺点:文件修改期间,始终保存两份数据
import os

with open('src.txt','r',encoding='utf-8') as f,\
    open('src.txt.swap','w',encoding='utf-8') as f_new:
    for line in f:
        if '武佩奇' in line:
            line=line.replace('武佩奇','苍井空')
        f_new.write(line)

os.remove('src.txt')
os.rename('src.txt.swap','src.txt')
posted @ 2017-12-28 10:28  Wesley·zk  阅读(180)  评论(0)    收藏  举报