使用python修改文件并立即寫回到原始位置操作(inplace讀寫)
很多應(yīng)用多需要處理文件,而處理文件有一個固定的模式:打開文件,讀入一些數(shù)據(jù),處理這些數(shù)據(jù),打印到屏幕上或?qū)懭肓硪粋€文件。
那么,如果我們想修改之后立即寫回文件,該怎么做呢?用什么模式打開?又怎么讀寫?
我個人嘗試了很多中方法,不是無法實現(xiàn),就是操作非常麻煩。最終放棄。
幸運的是,Python內(nèi)置模塊fileinput就可以輕松完成。代碼如下:
import fileinput for line in fileinput.input(r"D:\1.txt", inplace=1): print line.replace('d', 'b'),
足夠簡單吧。(將文件中的‘d'替換成'b')。
關(guān)于更多fileinput的資料,在這里http://docs.python.org/library/fileinput.html
補充知識:python在一個字符串中找到另外一個字符串并找到該字符起始的位置
代碼詳解
def index_of_str(seq, sub_seq): index=[] n1=len(seq) n2=len(sub_seq) for i in range(n1-n2+1): #print('seq==%s' % (seq[i:i + n2])) if seq[i:i+n2]==sub_seq: #print('seq==%s'%(seq[i:i+n2])) index.append(i+1) print(index) index_of_str('ATGATAGAGGGATACGGGATAG', 'GATA') def index_of_str(s1, s2): global dex dex=0 index=[] lt=s1.split(s2) print(lt) num=len(lt) for i in range(num-1): dex+=len(lt[i]) index.append(dex) dex+=len(s2) print(index) #if len(lt)==1: #return -1 #return len(lt[0]) print(index_of_str('ATGATAGAGGGATACGGGATAG', 'GATA'))
以上這篇使用python修改文件并立即寫回到原始位置操作(inplace讀寫)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實現(xiàn)掃描局域網(wǎng)活動ip(掃描在線電腦)
這篇文章主要介紹了Python實現(xiàn)掃描局域網(wǎng)活動ip(掃描在線電腦),本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-04-04libreoffice python 操作word及excel文檔的方法
這篇文章主要介紹了libreoffice python 操作word及excel文檔的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07pytorch 實現(xiàn)張量tensor,圖片,CPU,GPU,數(shù)組等的轉(zhuǎn)換
今天小編就為大家分享一篇pytorch 實現(xiàn)張量tensor,圖片,CPU,GPU,數(shù)組等的轉(zhuǎn)換,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python鍵鼠操作自動化庫PyAutoGUI簡介(小結(jié))
這篇文章主要介紹了Python鍵鼠操作自動化庫PyAutoGUI簡介,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05使用 Visual Studio Code(VSCode)搭建簡單的Python+Djan
這篇文章主要介紹了使用 Visual Studio Code(VSCode)搭建簡單的Python+Django開發(fā)環(huán)境的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12Python中DataFrame與內(nèi)置數(shù)據(jù)結(jié)構(gòu)相互轉(zhuǎn)換的實現(xiàn)
pandas?支持我們從?Excel、CSV、數(shù)據(jù)庫等不同數(shù)據(jù)源當(dāng)中讀取數(shù)據(jù),來構(gòu)建?DataFrame。但有時數(shù)據(jù)并不來自這些外部數(shù)據(jù)源,這就涉及到了?DataFrame?和?Python?內(nèi)置數(shù)據(jù)結(jié)構(gòu)之間的相互轉(zhuǎn)換,本文就來和大家詳細聊聊2023-02-02