返回顶部
首页 > 资讯 > 后端开发 > Python >python批量修改xml文件中的信息
  • 141
分享到

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

2024-04-02 19:04:59 141人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录项目场景:问题描述:分析:解决方案:总结项目场景: 在做目标检测时,重新进行标注会耗费大量的时间,如果能够批量对xml中的信息进行修改,那么将会节省大量的时间,接下来将详细介绍如

项目场景:

在做目标检测时,重新进行标注会耗费大量的时间,如果能够批量对xml中的信息进行修改,那么将会节省大量的时间,接下来将详细介绍如何修改标注文件xml中的相关信息。

问题描述:

例如:当我有一批标注好的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>
        }

分析:

可以发现整个标注文件的层级是按照annotation------folder/filename/…/object------name/pose/truncated/difficult/bndbox------xmin/ymin/xmax/ymax这样的格式来的。现在我需要修改标注目标的类别信息(将[1]改成lack),其他信息同理可以修改。python代码如下:

解决方案:

import os
import os.path
from xml.etree.ElementTree import parse, Element
#批量修改xml中内容
def test():
    path = "./datasets/Annotations/" # xml文件所在的目录
    files = os.listdir(path)  # 遍历文件夹下所有文件名称
    for xmlFile in files:  # 对所有文件进行循环遍历处理
        path1 = "./datasets/Annotations/"+xmlFile #定位当前处理的文件的路径
        newStr = os.path.join(path, xmlFile)

        dom = parse(newStr)  # 获取xml文件中的参数
        root = dom.getroot()  # 获取数据结构

        for obj in root.iter('object'): # 获取object节点中的name子节点(此处如果要换成别的比如bndbox)
            name = obj.find('name').text # 获取相应的文本信息
            #  以下为自定义的修改规则,我这里把文本信息为[1]~[5]的内容改成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()

总结

到此这篇关于Python批量修改xml文件中的信息的文章就介绍到这了,更多相关python批量修改xml内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python批量修改xml文件中的信息

本文链接: https://lsjlt.com/news/162635.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python批量修改xml文件中的信息
    目录项目场景:问题描述:分析:解决方案:总结项目场景: 在做目标检测时,重新进行标注会耗费大量的时间,如果能够批量对xml中的信息进行修改,那么将会节省大量的时间,接下来将详细介绍如...
    99+
    2024-04-02
  • python怎么批量修改xml文件中的信息
    这篇文章跟大家分析一下“python怎么批量修改xml文件中的信息”。内容详细易懂,对“python怎么批量修改xml文件中的信息”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“p...
    99+
    2023-06-26
  • Python实现批量修改xml文件的脚本
    今天分享一个我自己写的实用脚本,主要是将.xml文件进行批量的修改 首先,声明我并不是很了解.xml的相关知识,所以今天主要是以我遇到的问题来做个记录。 想要更多的了解xml,请看最...
    99+
    2024-04-02
  • WordPress如何批量修改文章信息
    本篇内容介绍了“WordPress如何批量修改文章信息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-03-13
    wordpress
  • Python 批量修改xml文件中的name字段 (目标检测适用)
    Change ‘name’ in xml files. 在目标检测任务中,需要自己制作标签数据集。有时需要修改目标的类别名称,或者将某一类别名称修改为另一名称,或者将某些类别名称合并为新的名称。...
    99+
    2023-10-24
    自然语言处理 人工智能 语言模型 python 开发语言
  • python如何批量修改文件名
    使用python批量修改文件名的方法:1.新建python项目;2.导入os模块;3.使用os.listdir()方法获取文件;4.使用os.rename()方法批量修改文件名;具体步骤如下:首先,打开python,并新建一个python项...
    99+
    2024-04-02
  • python文件操作3--批量修改文件后
    1、引言 需要把.dat 格式 转化成 .txt格式 2、实现 ##python批量更换后缀名 import os # 列出当前目录下所有的文件 files = os.listdir('.') #print('files',...
    99+
    2023-01-31
    文件 批量 操作
  • Python批量修改文本文件内容的方法
    Python批量替换文件内容,支持嵌套文件夹 import os path="./" for root,dirs,files in os.walk(path): for name in files: ...
    99+
    2022-06-04
    批量 文本文件 方法
  • python windows下批量修改文
        经常会下载一些资料和学习视频,往往这些资料名称很多,想批量修改又很不方便,刚好用python写一个修改文件名的小程序。    windows下安装python这个就不多说了,直接下载安装程序安装即可。https://www.pyth...
    99+
    2023-01-31
    批量 python windows
  • Python批量修改文件名的方式详解
    目录批量修改文件名(保留后缀) 批量修改文件名(全改) 读取文件下的所有文件名 总结批量修改文件名(保留后缀) 这种方法,保留了文件原本的后缀。这里主要演示的是对图片名的修改。 ...
    99+
    2024-04-02
  • 实例讲解Python批量修改文件名
    本篇文章给大家带来了关于python视频教程的相关知识,其中主要介绍了关于批量修改文件名的相关问题,包括了在原有的名字前中后批量加字、所有文件重新命名并添加序号等等内容,下面一起来看一下,希望对大家有帮助。随意一点,这是我刚刚新建的文件夹和...
    99+
    2022-06-21
    python
  • linux中怎么批量修改文件名
    这篇文章主要为大家展示了“linux中怎么批量修改文件名”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中怎么批量修改文件名”这篇文章吧。使用 rename 命令 ===========...
    99+
    2023-06-09
  • Python批量将csv文件转化成xml文件的实例
    一、前言 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须...
    99+
    2022-06-02
    Python csv转xml python csv文件转换
  • Python实现自动批量修改文件名称
    本文介绍基于Python语言,按照一定命名规则批量修改多个文件的文件名的方法。 已知现有一个文件夹,其中包括班级所有同学上交的作业文件,每人一份;所有作业文件命名格式统一,都是地信1...
    99+
    2023-01-30
    Python批量修改文件名 Python修改文件名
  • Python利用os模块批量修改文件名
    初学Python.随笔记录自己的小练习. 通过查阅资料os模块中rename和renames都可以做到 他们的区别为.rename:只能修改文件名   renames:可以修改文件名,还可以修改文件上级目录名称 另一个用到的方法是os.l...
    99+
    2023-01-31
    文件名 批量 模块
  • 怎么在linux 中批量修改文件名
    这篇文章将为大家详细讲解有关怎么在linux 中批量修改文件名,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体办法: Linux中"-"有特殊的含义,比如在命令的后面加...
    99+
    2023-06-13
  • Python怎么批量将csv文件转化成xml文件
    这篇文章主要介绍了Python怎么批量将csv文件转化成xml文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python主要应用领域有哪些1、云计算,典型应用OpenSt...
    99+
    2023-06-15
  • Go 如何批量修改文件名
    工作中遇到了批量修改文件名的情况,为此写了个小程序,以供日后方便查看。 用法: renamedirfiles.exe -d "E:\shared\图片素材\ps123_201...
    99+
    2022-06-07
    GO
  • php如何批量修改文件名
    可以使用PHP的`readdir()`函数和`rename()`函数来批量修改文件名。首先,使用`readdir()`函数读取目标文...
    99+
    2023-10-08
    php
  • php怎么批量修改文件名
    在PHP中,可以使用`scandir`函数来获取指定目录下的文件列表,然后使用`rename`函数来修改文件名。以下是一个示例代码,...
    99+
    2023-10-07
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作