python修改文件指定行

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')

因爲之前我修改指定行的數據是通過把其他數據寫入新的文件,然後把舊的文件刪除,再把新文件改爲之前的名字,雖然我知道這種方法有很多侷限性,可是當時並沒有想到更合適的方法。

現在可以通過先把數據讀入到內存中再寫入,此方法相比於前一種好多了。
在這裏插入圖片描述

發佈了49 篇原創文章 · 獲贊 40 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章