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')
因爲之前我修改指定行的數據是通過把其他數據寫入新的文件,然後把舊的文件刪除,再把新文件改爲之前的名字,雖然我知道這種方法有很多侷限性,可是當時並沒有想到更合適的方法。
現在可以通過先把數據讀入到內存中再寫入,此方法相比於前一種好多了。