python修改文件指定行(先读入内存,再修改)
我们现在有五行数据,我们想把pig替换成cow
我们可以先把数据读到内存里,然后再在内存中修改好以后再写入文档
#!/usr/bin/envpython
#-*-coding:utf-8-*-
#@Date:2019-04-2514:35:58
#@Author:迷风小白
defchangetext(a,b):
withopen('test','r',encoding='utf-8')asf:
lines=[]#创建了一个空列表,里面没有元素
forlineinf.readlines():
ifline!='':
lines.append(line)
f.close()
withopen('test','w',encoding='utf-8')asf:
forlineinlines:
ifainline:
line=b
f.write('%s'%line)
else:
f.write('%s'%line)
changetext('pig','cow')
因为之前我修改指定行的数据是通过把其他数据写入新的文件,然后把旧的文件删除,再把新文件改为之前的名字,虽然我知道这种方法有很多局限性,可是当时并没有想到更合适的方法。
现在可以通过先把数据读入到内存中再写入,此方法相比于前一种好多了。