python小操作 修改文件任意位置的內容

2021-08-30 14:00:30 字數 1894 閱讀 8901

python基本文件操作

讀入文件:

f = open(『test.txt』,』r』)

寫入文件:

f = open(『output.txt』,』w』)

注意!如果你想讀文件,卻寫錯了關鍵字,把』r』寫成』w』,並執行了程式,那麼你的文件就會變成空白的,因為你什麼都沒有寫入。

修改文件裡面指定行的內容:

比如你用**實現了自動生成文字和符號,但是迫於格式要求,很多符號都是成對出現的,而且在生成完文字之後,很難再回撤,比如我就遇到這樣的情況:

背景:

到:

可以看到,我把每一幀裡每乙個行人的座標都表示成json的格式了,但是格式轉換之後有個問題,在倒數第三行的地方,多了個逗號:

不要看它只是乙個小小的逗號,但是有這個逗號,vott就讀不出來,沒有逗號就讀取成功,所以程式設計也是乙份一絲不苟的工作呀~~

不就乙個小逗號麼?把它刪了就ok啦~~

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

實現首先建立兩個檔案讀取函式f1和f2,f1負責讀檔案資訊,f2寫新檔案資訊,通過一讀一寫,實現指定內容的修改。首先f1讀取這個json文件,然後一行一行地讀,如果這一行不用改內容,就發直接寫入新檔案;如果這一行需要做內容更改,可以直接更改或者用文字替換的方式進行更改(為滿足不同程式的自適應要求,多採用文字替換的方式),設定要替換的文字old_str和新文字new_str,進行內容替換,並完成其餘行的檔案讀寫。

源**如下:

import os

file=』output.json』

old_str = '}],'

new_str = '}]'

#由於我只想把最後乙個逗號去掉,所以新字串比舊字串少個逗號

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

def alter(file,old_str,new_str):

total_count =0  #文件的總行數

count = 0  #目標行數

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:如果當前行是倒數第三行,執行替換操作

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)

好了,這樣就愉快地實現了自動化的格式轉換並直接能被vott識別啦~

python 文件操作 Python文件操作

最近在網課中學習了python的文件操作,所以把老師上課講的都記錄了下來,作為筆記 開啟文件 可直接使用open函式,使用形式為1open 文件位址,操作形式 操作形式有以下幾個1 7r 唯讀模式 w 覆蓋寫模式 x 建立寫模式 a 追加寫模式 b 二進位制文件模式 t 文字文件模式 與r w x ...

python 文件操作

r 預設值 表示從檔案讀取資料。w 表示要向檔案寫入資料,並截斷以前的內容。a 表示要向檔案寫入資料,但是新增到當前內容尾部。r 表示對檔案進行讀寫操作 刪除以前的所有資料 r a 表示對檔案進行讀寫操作 新增到當前內容尾部 b 表示要讀寫二進位制資料。import re f open book 2...

Python文件操作

open c users second one desktop a.txt 檔案路徑必須完整路徑且為字串格式 有三種方式 open c users second one desktop a.txt open c users second one desktop a.txt open r c user...