【python小操作】修改文檔任意位置的內(nèi)容

Python基本文檔操作

讀入文檔:

f = open(‘test.txt’,’r’)

寫入文檔:

F = open(‘output.txt’,’w’)

注意结执!如果你想讀文檔痹雅,卻寫錯了關(guān)鍵字留凭,把’r’寫成’w’酸钦,并運行了程序,那么你的文檔就會變成空白的顽爹,因為你什么都沒有寫入到逊。

修改文檔里面指定行的內(nèi)容:

比如你用代碼實現(xiàn)了自動生成文本和符號,但是迫于格式要求黔寇,很多符號都是成對出現(xiàn)的偶器,而且在生成完文本之后,很難再回撤缝裤,比如我就遇到這樣的情況:

背景:

在yolo自動檢測視頻中的行人的時候屏轰,獲取到了每一幀的幀序號,行人的坐標(biāo)憋飞,而后這些坐標(biāo)需要讀入道VOTT(一款視頻標(biāo)注工具)里面進行細微矯正霎苗,所以需要轉(zhuǎn)換成json格式,然后json格式..你懂的榛做,中括號花括號唁盏,逗號都不能錯,好說歹說我終于把自動轉(zhuǎn)換格式的功能做出來了检眯,也就是:從


到:


可以看到厘擂,我把每一幀里每一個行人的坐標(biāo)都表示成json的格式了,但是格式轉(zhuǎn)換之后有個問題轰传,在倒數(shù)第三行的地方驴党,多了個逗號:


不要看它只是一個小小的逗號,但是有這個逗號获茬,VOTT就讀不出來港庄,沒有逗號就讀取成功倔既,所以編程也是一份一絲不茍的工作呀~~

不就一個小逗號么?把它刪了就OK啦~~

我也是這么想的鹏氧,但是跟我交接的同事不這么認為渤涌,硬是要我把這個逗號自動去除掉,于是就有了今天的這次分享~

實現(xiàn)

首先創(chuàng)建兩個文件讀取函數(shù)f1和f2把还,f1負責(zé)讀文件信息实蓬,f2寫新文件信息,通過一讀一寫吊履,實現(xiàn)指定內(nèi)容的修改安皱。首先f1讀取這個json文檔,然后一行一行地讀艇炎,如果這一行不用改內(nèi)容酌伊,就發(fā)直接寫入新文件;如果這一行需要做內(nèi)容更改缀踪,可以直接更改或者用文本替換的方式進行更改(為滿足不同程序的自適應(yīng)要求居砖,多采用文本替換的方式),設(shè)定要替換的文本old_str和新文本new_str,進行內(nèi)容替換驴娃,并完成其余行的文件讀寫奏候。

源代碼如下:

import os

file=’output.json’

old_str = '}],'

new_str = '}]'

#由于我只想把最后一個逗號去掉,所以新字符串比舊字符串少個逗號

#這里要確保只匹配到你想要更改的字符串唇敞,否則整一行符合條件的都會被替換掉

def alter(file,old_str,new_str):

???total_count =0? #文檔的總行數(shù)

???count = 0? #目標(biāo)行數(shù)

???with open(file) as f:

???????for line in f:

???????????total_count = total_count + 1

???with open(file, "r", encoding="utf-8") as f1, \

???????????open("%s.bak" % file, "w",encoding="utf-8") as f2:

???????for line in f1:

???????????count = count+1

???????????if count == total_count-2:如果當(dāng)前行是倒數(shù)第三行蔗草,執(zhí)行替換操作

??????????????? if old_str in line:

??????????????????? line =line.replace(old_str, new_str)

??????????????? f2.write(line)

???????????else:

??????????????? f2.write(line)

???os.remove(file)

os.rename("%s.bak"% file, file)

好了,這樣就愉快地實現(xiàn)了自動化的格式轉(zhuǎn)換并直接能被VOTT識別啦~

最后放上一張VOTT載入YOLO檢測的行人坐標(biāo)的截圖:


歡迎關(guān)注“pyhon修煉之道”厚棵,我們將持續(xù)更新新鮮python相關(guān)文章~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蕉世,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子婆硬,更是在濱河造成了極大的恐慌狠轻,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彬犯,死亡現(xiàn)場離奇詭異向楼,居然都是意外死亡,警方通過查閱死者的電腦和手機谐区,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門湖蜕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宋列,你說我怎么就攤上這事昭抒。” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵灭返,是天一觀的道長盗迟。 經(jīng)常有香客問我,道長熙含,這世上最難降的妖魔是什么罚缕? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮怎静,結(jié)果婚禮上邮弹,老公的妹妹穿的比我還像新娘。我一直安慰自己蚓聘,他們只是感情好腌乡,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著或粮,像睡著了一般导饲。 火紅的嫁衣襯著肌膚如雪捞高。 梳的紋絲不亂的頭發(fā)上氯材,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音硝岗,去河邊找鬼氢哮。 笑死,一個胖子當(dāng)著我的面吹牛型檀,可吹牛的內(nèi)容都是我干的冗尤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼胀溺,長吁一口氣:“原來是場噩夢啊……” “哼裂七!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起仓坞,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤背零,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后无埃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體徙瓶,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年嫉称,在試婚紗的時候發(fā)現(xiàn)自己被綠了侦镇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡织阅,死狀恐怖壳繁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤闹炉,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布伍派,位于F島的核電站,受9級特大地震影響剩胁,放射性物質(zhì)發(fā)生泄漏诉植。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一昵观、第九天 我趴在偏房一處隱蔽的房頂上張望晾腔。 院中可真熱鬧,春花似錦啊犬、人聲如沸灼擂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽剔应。三九已至,卻和暖如春语御,著一層夾襖步出監(jiān)牢的瞬間峻贮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工应闯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纤控,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓碉纺,卻偏偏與公主長得像船万,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子骨田,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容