欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python批量修改xml文件中的信息

 更新時(shí)間:2022年01月16日 11:36:07   作者:vodka、  
大家好,本篇文章主要講的是python批量修改xml文件中的信息,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下的相關(guān)資料

項(xiàng)目場(chǎng)景:

在做目標(biāo)檢測(cè)時(shí),重新進(jìn)行標(biāo)注會(huì)耗費(fèi)大量的時(shí)間,如果能夠批量對(duì)xml中的信息進(jìn)行修改,那么將會(huì)節(jié)省大量的時(shí)間,接下來(lái)將詳細(xì)介紹如何修改標(biāo)注文件xml中的相關(guān)信息。

問(wèn)題描述:

例如:當(dāng)我有一批標(biāo)注好的xml文件,文件格式如下圖所示 :

<?xml version='1.0' encoding='us-ascii'?>
<annotation>
	<folder>VOC2012</folder>
	<filename>x0y1115.png</filename>
	<source>
		<database>The VOC2007 Database</database>
		<anotation>PASCAL VOC2007</anotation>
		<image>flickr</image>
	</source>
	<size>
		<width>2233</width>
		<height>2177</height>
		<depth>3</depth>
	</size>
	<segmented>1</segmented>
	<object>
		<name>[1]</name>
		<pose>Unspecified</pose>
		<truncated>0</truncated>
		<difficult>1</difficult>
		<bndbox>
			<xmin>0</xmin>
			<ymin>1115</ymin>
			<xmax>30</xmax>
			<ymax>1145</ymax>
		</bndbox>
	</object>
</annotation>
        }

分析:

可以發(fā)現(xiàn)整個(gè)標(biāo)注文件的層級(jí)是按照annotation------folder/filename/…/object------name/pose/truncated/difficult/bndbox------xmin/ymin/xmax/ymax這樣的格式來(lái)的?,F(xiàn)在我需要修改標(biāo)注目標(biāo)的類別信息(將[1]改成lack),其他信息同理可以修改。Python代碼如下:

解決方案:

import os
import os.path
from xml.etree.ElementTree import parse, Element
#批量修改xml中內(nèi)容
def test():
    path = "./datasets/Annotations/" # xml文件所在的目錄
    files = os.listdir(path)  # 遍歷文件夾下所有文件名稱
    for xmlFile in files:  # 對(duì)所有文件進(jìn)行循環(huán)遍歷處理
        path1 = "./datasets/Annotations/"+xmlFile #定位當(dāng)前處理的文件的路徑
        newStr = os.path.join(path, xmlFile)

        dom = parse(newStr)  # 獲取xml文件中的參數(shù)
        root = dom.getroot()  # 獲取數(shù)據(jù)結(jié)構(gòu)

        for obj in root.iter('object'): # 獲取object節(jié)點(diǎn)中的name子節(jié)點(diǎn)(此處如果要換成別的比如bndbox)
            name = obj.find('name').text # 獲取相應(yīng)的文本信息
            #  以下為自定義的修改規(guī)則,我這里把文本信息為[1]~[5]的內(nèi)容改成lack,依次類推
            if name in ['[1]','[2]','[3]','[4]','[5]']:
                new_name = 'lack'
            elif name in ['[6]','[7]','[8]','[9]','[10]']:
                new_name = 'black_point'
            elif name in ['[11]','[12]','[13]','[14]','[15]']:
                new_name = 'crack'
            else:
                new_name = 'Satellite_InkDrop'
            obj.find('name').text = new_name # 修改
        dom.write(path1, xml_declaration=True) # 保存到指定文件
        pass
if __name__ == '__main__':
    test()

總結(jié)

到此這篇關(guān)于python批量修改xml文件中的信息的文章就介紹到這了,更多相關(guān)python批量修改xml內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python Multinomial Naive Bayes多項(xiàng)貝葉斯模型實(shí)現(xiàn)原理介紹

    Python Multinomial Naive Bayes多項(xiàng)貝葉斯模型實(shí)現(xiàn)原理介紹

    這篇文章主要介紹了Python Multinomial Naive Bayes多項(xiàng)貝葉斯模型實(shí)現(xiàn)原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-09-09
  • PyTorch 隨機(jī)數(shù)生成占用 CPU 過(guò)高的解決方法

    PyTorch 隨機(jī)數(shù)生成占用 CPU 過(guò)高的解決方法

    今天小編就為大家分享一篇PyTorch 隨機(jī)數(shù)生成占用 CPU 過(guò)高的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python學(xué)習(xí)之日志模塊詳解

    Python學(xué)習(xí)之日志模塊詳解

    說(shuō)到日志,我們完全可以想象為現(xiàn)實(shí)生活中的日記。日記是我們平時(shí)記錄我們生活中點(diǎn)點(diǎn)滴滴的一種方法,而日志我們可以認(rèn)為是 程序的日記 ,程序的日記是用來(lái)記錄程序的行為。本文將詳細(xì)介紹Python中的日志模塊(logging),需要的可以參考一下
    2022-03-03
  • Python安裝jieba庫(kù)詳細(xì)教程

    Python安裝jieba庫(kù)詳細(xì)教程

    jieba庫(kù)是一款優(yōu)秀的 Python 第三方中文分詞庫(kù),jieba 支持三種分詞模式:精確模式、全模式和搜索引擎模式,這篇文章主要介紹了Python安裝jieba庫(kù)教程,需要的朋友可以參考下
    2023-03-03
  • python使用 HTMLTestRunner.py生成測(cè)試報(bào)告

    python使用 HTMLTestRunner.py生成測(cè)試報(bào)告

    這篇文章主要介紹了python使用 HTMLTestRunner.py生成測(cè)試報(bào)告 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • opencv-python 開(kāi)發(fā)環(huán)境的安裝、配置教程詳解

    opencv-python 開(kāi)發(fā)環(huán)境的安裝、配置教程詳解

    這篇文章主要介紹了opencv-python 開(kāi)發(fā)環(huán)境的安裝、配置,本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • python3.7 openpyxl 在excel單元格中寫入數(shù)據(jù)實(shí)例

    python3.7 openpyxl 在excel單元格中寫入數(shù)據(jù)實(shí)例

    這篇文章主要介紹了python3.7 openpyxl 在excel單元格中寫入數(shù)據(jù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • Python腳本修改Maya ASCII文件路徑方法實(shí)現(xiàn)

    Python腳本修改Maya ASCII文件路徑方法實(shí)現(xiàn)

    本文主要介紹了Python腳本修改Maya ASCII文件路徑方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 基于python實(shí)現(xiàn)音樂(lè)播放器代碼實(shí)例

    基于python實(shí)現(xiàn)音樂(lè)播放器代碼實(shí)例

    這篇文章主要介紹了基于python實(shí)現(xiàn)音樂(lè)播放器代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • pandas DataFrame 賦值的注意事項(xiàng)說(shuō)明(index)

    pandas DataFrame 賦值的注意事項(xiàng)說(shuō)明(index)

    這篇文章主要介紹了pandas DataFrame 賦值的注意事項(xiàng)說(shuō)明(index),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04

最新評(píng)論