python基礎_文件操作實現(xiàn)全文或單行替換的方法
python修改文件時,使用w模式會將原本的文件清空/覆蓋??梢韵扔米x(r)的方式打開,寫到內(nèi)存中,然后再用寫(w)的方式打開。
1、替換文本中的taste 為 tasting
Yesterday when I was young 昨日當我年少輕狂 The taste of life was sweet 生命的滋味是甜的 As rain upon my tongue
#將文件讀取到內(nèi)存中 with open("./fileread.txt","r",encoding="utf-8") as f: lines = f.readlines() #寫的方式打開文件 with open("./fileread.txt","w",encoding="utf-8") as f_w: for line in lines: if "taste" in line: #替換 line = line.replace("taste","tasting") f_w.write(line)
2、全文中搜索替換或者單行替換
#文本內(nèi)容 Yesterday when I was young 昨日當我年少輕狂 The taste of life was sweet 生命的滋味是甜的 As rain upon my tongue taste taste taste taste
#定義一個函數(shù),帶有4個參數(shù) #x 表示要更新的文件名稱 #y 表示要被替換的內(nèi)容 #z 表示 替換后的內(nèi)容 #s 默認參數(shù)為 1 表示只替換第一個匹配到的字符串 # 如果參數(shù)為 s = 'g' 則表示全文替換 def string_switch(x,y,z,s=1): with open(x, "r", encoding="utf-8") as f: #readlines以列表的形式將文件讀出 lines = f.readlines() with open(x, "w", encoding="utf-8") as f_w: #定義一個數(shù)字,用來記錄在讀取文件時在列表中的位置 n = 0 #默認選項,只替換第一次匹配到的行中的字符串 if s == 1: for line in lines: if y in line: line = line.replace(y,z) f_w.write(line) n += 1 break f_w.write(line) n += 1 #將剩余的文本內(nèi)容繼續(xù)輸出 for i in range(n,len(lines)): f_w.write(lines[i]) #全局匹配替換 elif s == 'g': for line in lines: if y in line: line = line.replace(y,z) f_w.write(line)
測試
1)默認參數(shù) 1,只替換匹配到的第一行
string_switch("fileread.txt","taste","tasting") #結(jié)果 Yesterday when I was young 昨日當我年少輕狂 The tasting of life was sweet 生命的滋味是甜的 As rain upon my tongue taste taste taste taste
2)全局替換
string_switch("fileread.txt","taste","tasting","g") #結(jié)果 Yesterday when I was young 昨日當我年少輕狂 The tasting of life was sweet 生命的滋味是甜的 As rain upon my tongue tasting tasting tasting tasting
以上這篇python基礎_文件操作實現(xiàn)全文或單行替換的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
對python同一個文件夾里面不同.py文件的交叉引用方法詳解
今天小編就為大家分享一篇對python同一個文件夾里面不同.py文件的交叉引用方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12Python3實現(xiàn)發(fā)送QQ郵件功能(文本)
這篇文章主要為大家詳細介紹了Python3實現(xiàn)發(fā)送QQ郵件功能,文本方面,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12詳解Python中Sync與Async執(zhí)行速度快慢對比
Python新的版本中支持了async/await語法, 很多文章都在說這種語法的實現(xiàn)代碼會變得很快, 但是這種快是有場景限制的。這篇文章將嘗試簡單的解釋為何Async的代碼在某些場景比Sync的代碼快2023-03-03Pandas實現(xiàn)groupby分組統(tǒng)計方法實例
在數(shù)據(jù)處理的過程,有可能需要對一堆數(shù)據(jù)分組處理,例如對不同的列進行agg聚合操作(mean,min,max等等),下面這篇文章主要給大家介紹了關于Pandas實現(xiàn)groupby分組統(tǒng)計方法的相關資料,需要的朋友可以參考下2023-06-06在pytorch中動態(tài)調(diào)整優(yōu)化器的學習率方式
這篇文章主要介紹了在pytorch中動態(tài)調(diào)整優(yōu)化器的學習率方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06