python修改文件指定行(先读入内存,再修改)

在这里插入图片描述
我们现在有五行数据,我们想把pig替换成cow

我们可以先把数据读到内存里,然后再在内存中修改好以后再写入文档

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2019-04-25 14:35:58
# @Author  : 迷风小白

def changetext(a,b):
 with open('test','r',encoding='utf-8') as f:
  lines=[] # 创建了一个空列表,里面没有元素
  for line in f.readlines():
   if line!='\n':
    lines.append(line)
  f.close()
 with open('test','w',encoding='utf-8') as f:
  for line in lines:
   if a in line:
    line = b 
    f.write('%s\n' %line)
   else:
    f.write('%s' %line) 

changetext('pig','cow')

因为之前我修改指定行的数据是通过把其他数据写入新的文件,然后把旧的文件删除,再把新文件改为之前的名字,虽然我知道这种方法有很多局限性,可是当时并没有想到更合适的方法。

现在可以通过先把数据读入到内存中再写入,此方法相比于前一种好多了。
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐