python解析並修改xml檔案

2021-08-20 19:04:25 字數 2845 閱讀 5611

使用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 列印引數...