使用labelimg標註後需要統一修改label的名稱和名,所以用python批量修改名和xml檔案。
首先批量複製並修改名稱:
# -*- coding: utf-8 -*-
# 將二級目錄下的/標籤檔案重新命名到同乙個新資料夾下
import os, shutil
defbatchrenamefile
(srcdirname, destdirname):
# srcdirname 為源資料夾的絕對路徑,真正儲存資料檔案的子資料夾都在該資料夾下;destdirname 為目標資料夾的絕對路徑
subdirnamelist = os.listdir(srcdirname) # 獲取真正儲存資料檔案的資料夾序列
for subdirname in subdirnamelist:
filelist = os.listdir(srcdirname+'/'+subdirname) # 此處須給出絕對路徑
i = 1
for file in filelist:
shutil.copy(srcdirname+'/'+subdirname+'/'+file, destdirname+'/1_'+subdirname+'_'+str(i)+'.jpg') # 此處須給出絕對路徑
i = i+1
接著從txt檔案中生成數字和標籤對應的字典:
def creatdic():
txtdict = {}
dirfile = 'e:\cats&dogs\catlist.txt'
dicfile = open(dirfile,'r')
while true:
line = dicfile.readline()
if'\xef\xbb\xbf'
inline:
line = line.replace('\xef\xbb\xbf', '')
ifline == '':
break
key = line.split('\t')[0]
# print(key)
value = line.split('\t')[-1]
# print(value)
txtdict[key] = value
# 加入字典
dicfile.close()
dirfile = 'e:\cats&dogs\doglist.txt'
dicfile = open(dirfile, 'r')
while true:
line = dicfile.readline()
if'\xef\xbb\xbf'
inline:
line = line.replace('\xef\xbb\xbf', '')
ifline == '':
break
key = line.split('\t')[0]
value = line.split('\t')[-1].split('\n')[0]
txtdict[str(int(key)+int(42))] = value
# 加入字典
dicfile.close()
return txtdict
def
batchrenamefile1
(dirname,txtdict):
# dirname 為資料夾的絕對路徑
for sub4 in root.findall("object"): ##找到root節點下的所有object節點,因為有不止乙個名字叫object的節點
subsub=sub4.find('name')
subsub.text = txtdict[label]
if species == "2": # dog
sub3 = root.find("folder")
sub3.text = txtdict[str(int(label)+int(42))]
for sub4 in root.findall("object"):
subsub=sub4.find('name')
subsub.text = txtdict[str(int(label)+int(42))]
doc.write(filepath)
完整原始檔詳見github: 詳解在Python程式中解析並修改XML內容的方法
需求 在實際應用中,需要對xml配置檔案進行實時修改,1.增加 刪除 某些節點 2.增加,刪除,修改某個節點下的某些屬性 3.增加,刪除,修改某些節點的文字 使用xml文件 實現思想 使用elementtree,先將檔案讀入,解析成樹,之後,根據路徑,可以定位到樹的每個節點,再對節點進行修改,最後直...
Python建立XML檔案,C 解析XML檔案
最近在做一些 移植工作,為了測試正確性,要拿同樣的輸入資料測試,於是打算使用xml來儲存資料,c 進行解析。簡單做個記錄。資料來源使用python生成xml 目標是生成下面的樣子,直接看 吧,python這個xml庫用起來比較簡單,看個例子就會了。c 解析xml qt qdomdocument 剛好...
Python解析xml檔案並修改後儲存 demo
前情提要 需要對底層的引數檔案 xml格式 進行讀取,並將前端下發的資料覆蓋原資料,並儲存。下發引數格式 json 呈現 from xml.dom import minidom targetpath os.path.join path,targetfile print targetpath 列印引數...