如何使用python批量修改txt文档
生活随笔
收集整理的這篇文章主要介紹了
如何使用python批量修改txt文档
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1 - 目標(biāo)
因?yàn)樾枰砩疃葘W(xué)習(xí)的數(shù)據(jù)集,需要手動改寫一些txt數(shù)據(jù)集對應(yīng)的初始項(xiàng)目
如圖,我需要把71改成2 ; 把73刪除 ; 把57改成3?;改57成3且同時(shí)把2刪除
因?yàn)橛猩锨€(gè)這樣的txt文件,所以假如手動修改的話需要很長時(shí)間
因此寫一個(gè)python文件是最方便的,能在半分鐘內(nèi)全部搞定
2 - python源碼加注釋
????????開頭:
import os # 只需要引入這個(gè)系統(tǒng)控制的庫# 定義一個(gè)path變量,里面是存著所以需要改的txt文件的文件夾名稱 path = 'E:/C2/UART/datamingjie/1144images_dataset/1144images_aryan/txt' # 系統(tǒng)列表出所有path文件夾里面文件的名稱 (此操作并不會有序遍歷所有文件,因此需要下一條代碼排列) total_txt = os.listdir(path) # 通過文件名格式前的數(shù)字大小按升序排列 total_txt.sort(key=lambda x: int(x.split('.')[0]))????????功能一 : 將所有的txt文件名字改成從 1 - 全部
????????(改名讓txt更有序可辨認(rèn),且可以簡單測試一下python環(huán)境的設(shè)置)
# 功能一 i = 0 # 設(shè)定變量i用作命名txt文件# 遍歷前面讀取的所有有序排列的文件 for file in total_txt:i += 1 # 每次加1# 兩個(gè)路徑用來改名oldfile = path+'/'+str(file)newfile = path+'/'+str(i)+'.txt'# os庫直接改名os.rename(oldfile, newfile)? ? ? ? 功能二 :本文中最主要的功能,修改批量修改txt文檔中的內(nèi)容
deleteList = [] # 設(shè)定變量deleteList,隨后print出來# 遍歷前面讀取的已修改的有序文件 for file in total_txt:fileName = path + '/' + fileverify = 0 # 定義判斷變量用來決定文件是否刪除file = open(fileName, 'r') # 打開文件閱讀模式lines = file.readlines() # 返回列表形式的內(nèi)容# 以行為單位遍歷文件內(nèi)容(index是行數(shù),line是單行內(nèi)容)for index, line in enumerate(lines):strT = lines[index] # 讀取當(dāng)前行的內(nèi)容if strT[0:2] == "71": # 切片判斷前兩個(gè)字符strT = "2"+strT[2:] # 改成2加字符第二位往后lines[index] = strT # 改寫lines中的內(nèi)容verify = 1 # 驗(yàn)證文件有需要保存的內(nèi)容# 與上述同理elif strT[0:2] == "57":strT = "3"+strT[2:]lines[index] = strTverify += 1# 這里如果沒有想要保持的就直接用空代替來寫入lines中else:strT = ''lines[index] = strT# 判斷文件是否需要刪除并把序號放進(jìn)刪除列表中隨后處理if verify == 0:deleteList.append(i)# 然后將讀取模式關(guān)閉file.close()# lines列表轉(zhuǎn)換為字符串放在strT中strT = "".join(lines)# 打開文件寫入模式,把更新后的lines寫進(jìn)txt文件中file = open(fileName, 'w')file.write(strT)file.close()#最后把需要刪除的文件(沒有所需要數(shù)字的txt文件)打印出來 print(deleteList)????????功能三?:刪除沒有目標(biāo)數(shù)據(jù)的文件(需要前先運(yùn)行功能二后輸入print出來的結(jié)果)
# 第四步,刪除無用txt for num in deleteList:os.remove(path+'/'+str(num)+".txt")最后可以為了好看在運(yùn)行一次功能一的改名,至此目標(biāo)實(shí)現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的如何使用python批量修改txt文档的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java unpack_参数,解包-UN
- 下一篇: MySQL --- 函数大全3