精华内容
下载资源
问答
  • 批量修改xml文件中的name属性批量修改xml文件中的name属性name属性名可以随意更改,如原本未have_mask,现在改为have_mask。如原来的xml中name属性为:现在需要将name:have_mask更改为face_mask。代码如下:```...

    批量修改xml文件中的name属性

    批量修改xml文件中的name属性

    name属性名可以随意更改,如原本未have_mask,现在改为have_mask。

    如原来的xml中name属性为:

    1e5b208770f44472d1c0a5c540881d31.png

    现在需要将name:have_mask更改为face_mask。

    代码如下:

    ```python

    import os

    import os.path

    from xml.etree.ElementTree import parse, Element

    #批量修改xml中内容

    def test():

    path = "D:\label_mask/"#xml文件所在的目录

    files = os.listdir(path) # 得到文件夹下所有文件名称

    s = []

    for xmlFile in files: # 遍历文件夹

    if not os.path.isdir(xmlFile): # 判断是否是文件夹,不是文件夹才打开

    print

    xmlFile

    pass

    path = "D:\label_mask/"

    print(xmlFile)

    path1 = "D:\label_mask/"+xmlFile#定位当前处理的文件的路径

    newStr = os.path.join(path, xmlFile)

    name = "face_mask"

    dom = parse(newStr) ###最核心的部分,路径拼接,输入的是具体路径

    root = dom.getroot()

    print(root)

    for obj in root.iter('object'):#获取object节点中的name子节点

    obj.find('name').text=name

    name1 = obj.find('name').text#修改

    print(name1)

    dom.write(path1, xml_declaration=True)#保存到指定文件

    pass

    if __name__ == '__main__':

    test()

    批量修改xml文件中的name属性相关教程

    php如何使用foreach修改数组

    php foreach修改数组的方法:首先创建一个PHP示例文件;然后通过foreach语句“foreach($array as $k = $v){$v = 1;}”修改指定数组中的值即可。 推荐:《PHP视频教程》 php中用foreach改变数组的值的问题 翻到PHP文档的foreach那页这样写道: “foreach 语法

    实现一键下载,批量快速爬取B站视频

    实现一键下载,批量快速爬取B站视频 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:Corley 源自:快学python 一、项目概述 1.项目背景 有一天,我突然想找点事做,想起一直想

    php如何批量替换字符串

    php批量替换字符串的方法:使用【str_replace】批量查找替换字符串,代码为【$str = str_replace(o,O,$str,$count);echo $str.PHP_EOL;】。 php批量替换字符串的方法: str_repla ce 批量查找替换字符串 ?php$str = I Love You!;$str = str_replace(o,O,$str

    Python查看、修改pip install 默认使用的pip库

    Python查看、修改pip install 默认使用的pip库 一、更改 Python 的 pip install 默认使用的pip库 【方法】只需要将对应python脚本的路径添加到系统环境变量Path中较前的位置即可,这样就可以获得优先级。 1、打开终端,可以通过指令 pip show pip 查看默认使

    IDEA maven webapp项目直接复制成另外一个项目应该修改的地方

    IDEA maven webapp项目直接复制成另外一个项目应该修改的地方 1.pom.xml里面项目名字改变了,也需要改变配置 artifactIdbigProject_impro/artifactId!--项目名字修改-- namebigProject_impro Maven Webapp/name!--项目名字修改-- [emailprotected]注解标记的

    怎么修改mysql的表名和列名

    在mysql中,可以通过“ALTER TABLE 旧表名 RENAME 新表名;”语句来修改表名,通过“ALTER TABLE 表名 CHANGE 旧字段名/列名 新字段名/列名 新数据类型;”语句来修改列名。 修改mysql的表名 MySQL 通过 ALTER TABLE 语句来实现表名的修改,语法规则如下: ALT

    XML介绍

    XML介绍 XML基础 xml(e X tensible M arkup L anguage)即 可扩展标记语言 ,xml是 互联网数据传输的重要工具 ,它可以 跨越互联网任何的平台 ,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者。 XML 的设计宗旨是传输

    小程序语法

    小程序语法 WXML(WeiXin Markup Language) 是框架设计的一套标签语言,结合基础组件、事件系统,可以构 建出页面的结构。 1.1 数据绑定 普通写法 view {{ message }} /view Page({data: {message: 'Hello MINA!' }}) 组件属性 view id=item-{{id}} /view Pa

    展开全文
  • 主要介绍了python批量修改xml属性的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 【目标检测适用】批量修改xml文件中的name字段

    千次阅读 热门讨论 2019-10-27 22:22:03
    前言:使用labelimg进行标注的时候,由于都是用的是默认的名称,有时候类的名字会出现拼写错误,比如我想要写的是“cow” 结果打上去的是“cwo”, 一出错就错一片,这很常见... xml文件展示2. 将文件夹中所有name进...

    前言:使用labelimg进行标注的时候,由于都是用的是默认的名称,有时候类的名字会出现拼写错误,比如我想要写的是“cow” 结果打上去的是“cwo”, 一出错就错一片,这很常见,所以参考了:https://www.jianshu.com/p/cf12bef0872c 的代码,修改了冗余的代码,并添加了新的模块以后,将代码分享给大家。

    1. xml文件展示

    <annotation>
    	<folder>part3</folder>
    	<filename>0015-1150.jpg</filename>
    	<path>I:\part3\0015-1150.jpg</path>
    	<source>
    		<database>Unknown</database>
    	</source>
    	<size>
    		<width>1280</width>
    		<height>720</height>
    		<depth>3</depth>
    	</size>
    	<segmented>0</segmented>
    	<object>
    		<name>cow</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>459</xmin>
    			<ymin>88</ymin>
    			<xmax>567</xmax>
    			<ymax>163</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>cow</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>543</xmin>
    			<ymin>92</ymin>
    			<xmax>630</xmax>
    			<ymax>163</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>cow</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>659</xmin>
    			<ymin>156</ymin>
    			<xmax>773</xmax>
    			<ymax>263</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>cow</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>497</xmin>
    			<ymin>171</ymin>
    			<xmax>677</xmax>
    			<ymax>315</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>cow</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>584</xmin>
    			<ymin>303</ymin>
    			<xmax>715</xmax>
    			<ymax>395</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>cow</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>537</xmin>
    			<ymin>389</ymin>
    			<xmax>814</xmax>
    			<ymax>497</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>cow</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>750</xmin>
    			<ymin>303</ymin>
    			<xmax>918</xmax>
    			<ymax>434</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>cow</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>770</xmin>
    			<ymin>223</ymin>
    			<xmax>958</xmax>
    			<ymax>285</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>cow</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>974</xmin>
    			<ymin>477</ymin>
    			<xmax>1152</xmax>
    			<ymax>636</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>cow</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>66</xmin>
    			<ymin>454</ymin>
    			<xmax>308</xmax>
    			<ymax>696</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>cow</name>
    		<pose>Unspecified</pose>
    		<truncated>1</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>347</xmin>
    			<ymin>548</ymin>
    			<xmax>550</xmax>
    			<ymax>720</ymax>
    		</bndbox>
    	</object>
    	<object>
    		<name>cow</name>
    		<pose>Unspecified</pose>
    		<truncated>0</truncated>
    		<difficult>0</difficult>
    		<bndbox>
    			<xmin>996</xmin>
    			<ymin>154</ymin>
    			<xmax>1128</xmax>
    			<ymax>245</ymax>
    		</bndbox>
    	</object>
    </annotation>
    

    2. 将文件夹中所有name进行批量更改

    2.1 将某类别名称更改

    def changeName(xml_fold, origin_name, new_name):
        '''
        xml_fold: xml存放文件夹
        origin_name: 原始名字,比如弄错的名字,原先要cow,不小心打成cwo
        new_name: 需要改成的正确的名字,在上个例子中就是cow
        '''
        files = os.listdir(xml_fold)
        cnt = 0 
        for xmlFile in files:
            file_path = os.path.join(xml_fold, xmlFile)
            dom = parse(file_path)
            root = dom.getroot()
            for obj in root.iter('object'):#获取object节点中的name子节点
                tmp_name = obj.find('name').text
                if tmp_name == origin_name: # 修改
                    obj.find('name').text = new_name
                    print("change %s to %s." % (origin_name, new_name))
                    cnt += 1
            dom.write(file_path, xml_declaration=True)#保存到指定文件
        print("有%d个文件被成功修改。" % cnt)
    

    效果如下:
    在这里插入图片描述

    2.2 将某文件夹所有类别都统一成某个类别

    适用于只有一个类,并且进行改名的时候。

    def changeAll(xml_fold,new_name):
        '''
        xml_fold: xml存放文件夹
        new_name: 需要改成的正确的名字,在上个例子中就是cow
        '''
        files = os.listdir(xml_fold)
        cnt = 0 
        for xmlFile in files:
            file_path = os.path.join(xml_fold, xmlFile)
            dom = parse(file_path)
            root = dom.getroot()
            for obj in root.iter('object'):#获取object节点中的name子节点
                tmp_name = obj.find('name').text
                obj.find('name').text = new_name
                print("change %s to %s." % (tmp_name, new_name))
                cnt += 1
            dom.write(file_path, xml_declaration=True)#保存到指定文件
        print("有%d个文件被成功修改。" % cnt)
    

    效果:
    在这里插入图片描述

    2.3 统计每个类别实际目标的个数

    def countAll(xml_fold):
        '''
        xml_fold: xml存放文件夹
        '''
        files = os.listdir(xml_fold)
        dict={}
        for xmlFile in files:
            file_path = os.path.join(xml_fold, xmlFile)
            dom = parse(file_path)
            root = dom.getroot()
            for obj in root.iter('object'):#获取object节点中的name子节点
                tmp_name = obj.find('name').text
                if tmp_name not in dict:
                    dict[tmp_name] = 0
                else:
                    dict[tmp_name] += 1
            dom.write(file_path, xml_declaration=True)#保存到指定文件
        print("统计结果如下:")
        print("-"*10)
        for key,value in dict.items():
            print("类别为%s的目标个数为%d." % (key, value))
        print("-"*10)
    

    在这里插入图片描述

    3. 全部代码

    import os
    import os.path
    from xml.etree.ElementTree import parse, Element
    
    def changeName(xml_fold, origin_name, new_name):
        '''
        xml_fold: xml存放文件夹
        origin_name: 原始名字,比如弄错的名字,原先要cow,不小心打成cwo
        new_name: 需要改成的正确的名字,在上个例子中就是cow
        '''
        files = os.listdir(xml_fold)
        cnt = 0 
        for xmlFile in files:
            file_path = os.path.join(xml_fold, xmlFile)
            dom = parse(file_path)
            root = dom.getroot()
            for obj in root.iter('object'):#获取object节点中的name子节点
                tmp_name = obj.find('name').text
                if tmp_name == origin_name: # 修改
                    obj.find('name').text = new_name
                    print("change %s to %s." % (origin_name, new_name))
                    cnt += 1
            dom.write(file_path, xml_declaration=True)#保存到指定文件
        print("有%d个文件被成功修改。" % cnt)
    
    def changeAll(xml_fold,new_name):
        '''
        xml_fold: xml存放文件夹
        new_name: 需要改成的正确的名字,在上个例子中就是cow
        '''
        files = os.listdir(xml_fold)
        cnt = 0 
        for xmlFile in files:
            file_path = os.path.join(xml_fold, xmlFile)
            dom = parse(file_path)
            root = dom.getroot()
            for obj in root.iter('object'):#获取object节点中的name子节点
                tmp_name = obj.find('name').text
                obj.find('name').text = new_name
                print("change %s to %s." % (tmp_name, new_name))
                cnt += 1
            dom.write(file_path, xml_declaration=True)#保存到指定文件
        print("有%d个文件被成功修改。" % cnt)
    
    def countAll(xml_fold):
        '''
        xml_fold: xml存放文件夹
        '''
        files = os.listdir(xml_fold)
        dict={}
        for xmlFile in files:
            file_path = os.path.join(xml_fold, xmlFile)
            dom = parse(file_path)
            root = dom.getroot()
            for obj in root.iter('object'):#获取object节点中的name子节点
                tmp_name = obj.find('name').text
                if tmp_name not in dict:
                    dict[tmp_name] = 0
                else:
                    dict[tmp_name] += 1
            dom.write(file_path, xml_declaration=True)#保存到指定文件
        print("统计结果如下:")
        print("-"*10)
        for key,value in dict.items():
            print("类别为%s的目标个数为%d." % (key, value))
        print("-"*10)
    
    
    if __name__ == '__main__':
        path = r"I:\dongpeijiePickup\assignment\part2_xml" #xml文件所在的目录
        # changeName(path, "cattle", "cow")
        # changeAll(path, "cattle")
        countAll(path)
    
    
    展开全文
  • sv_path='C:\\Users\\Admin\\Desktop\\xml2' # 修改后的xml文件存放路径 files=os.listdir(path) for xmlFile in files: dom=xml.dom.minidom.parse(os.path.join(path,xmlFile)) #打开xml文件,送到dom解
    import xml.dom.minidom
    import os
    path='C:\\Users\\Admin\\Desktop\\xml' # xml文件存放路径
    sv_path='C:\\Users\\Admin\\Desktop\\xml2' # 修改后的xml文件存放路径
    files=os.listdir(path)
    for xmlFile in files:
    	dom=xml.dom.minidom.parse(os.path.join(path,xmlFile)) #打开xml文件,送到dom解析
    	root=dom.documentElement #得到文档元素对象
    	item=root.getElementsByTagName('object') #获取object这一node名字及相关属性值
    	for i in item:
    		ite=i.getElementsByTagName('name')#获取name这一node名字及相关属性值
    		for t in ite:
    				t.firstChild.data='door' #将name中的内容都改为door
    	with open(os.path.join(sv_path,xmlFile),'w') as fh:
    		dom.writexml(fh)
    
    

    参考:https://blog.csdn.net/qq_41983165/article/details/87977712

    展开全文
  • 最易懂的贪心算法 算法解释: 贪心算法保证每次操作局部最优,从而全局最优。

    修改XML文件中filename标签内容

    功能:

    用python实现,将filename文件后缀名从png改为jpg
    在这里插入图片描述
    修改后为:
    在这里插入图片描述

    import os.path
    import xml.dom.minidom
    path="E:\junior learning\\vacation task\\result\\111"
    files=os.listdir(path)#返回文件夹中的文件名列表
    #print(files)
    s=[]
    count=0
    for xmlFile in files:
        if not os.path.isdir(xmlFile):#os.path.isdir()用于判断对象是否为一个目录
            #如果不是目录,则直接打开
            name1=xmlFile.split('.')[0]+'.'+"jpg"
            print(name1)
            dom=xml.dom.minidom.parse(path+'\\'+xmlFile)
            #print(dom)
            root=dom.documentElement
            newfolder=root.getElementsByTagName('folder')
            #print(newfolder)
            newpath = root.getElementsByTagName('path')
            newfilename = root.getElementsByTagName('filename')
            newfilename[0].firstChild.data = name1
            with open(os.path.join(path, xmlFile), 'w') as fh:
                dom.writexml(fh)
                #print('写入name/pose OK!')
            count = count + 1
    

    参考博客:https://download.csdn.net/?spm=1001.2101.3001.4483

    展开全文
  • 通过解析xml文件批量修改xml文件里的标签名称,改变xml文件的标签 """ import glob import xml.etree.ElementTree as ET path = r'./xml' # 文件夹路径 i = 0 for xml_file in glob.glob(path + '/*.xml'): # ...
  • 批量修改xml文件节点信息

    千次阅读 2018-10-31 16:10:27
    如何批量修改指定文件夹下的xml文件的指定属性.分三步走,首先,我们先看看如何读写单个 的xml文件;第二步,来看看如何遍历指定文件夹下的所有文件,获取到所有文件的文件名;第三步,我们来看看一二之间 该如何衔接.好,...
  • 批量修改XML中的标签值

    千次阅读 2019-06-05 18:33:39
    因为用labelimg给图片打标签的时候打错了,本来是water dispenser弄成了drinking_fountain了,尴尬_(:з)∠)_,并且已经标了1500张了,只能自己写程序改,xml文件示例如下: <?xml version='1.0' encoding='us-...
  • 问题描述: 对大量xml标签进行修改floder的名字,以及path路径。例如把1修改为train,把路径修改为当前xml所在位置。 xml格式如下: 代码如下:
  • python批量修改xml属性

    万次阅读 2018-01-25 21:48:26
    如何批量修改指定文件夹下的xml文件的指定属性.分三步走,首先,我们先看看如何读写单个 的xml文件;第二步,来看看如何遍历指定文件夹下的所有文件,获取到所有文件的文件名;第三步,我们来看看一二之间 该如何衔接.好,...
  • python批量修改xml文件的标签属性值

    千次阅读 2020-01-08 18:25:03
    一、使用背景 之前在ubuntu下做过yolov3目标检测的项目(Pascal VOC数据集),...因此需要用python批量修改xml中 filename和path两个属性值 所以…找轮子发现了-> https://blog.csdn.net/qq_41983165/article...
  • from xml.etree.ElementTree import parse, Element out_dir = 'NewAnnotations/' ##这里是保存的目标文件夹 b = os.listdir('Annotations/') for i in b: print(i) dom = parse('Annotations/'+i) roo...
  • 所以通过python脚本实现一个小工具,读取xml文件内容,修改属性的value值后,再重新写入xml文件。 该代码通过参考网络资源,临时拼凑起来的。 ''' import xml.dom.minidom # dom方式解析xml文件 import re,os # ...
  • 【学习笔记】使用python批量读取并修改xml文件

    万次阅读 多人点赞 2018-11-13 10:05:35
    在大老板的安排下最近在某公司实习,实习期间要求实现一个图像识别模块的封装。无奈基础太薄弱,只能将任务细分,单独学习来实现。以此为背景…… 本篇目标:通过python批量访问并...因此,目前急需实现批量修改...
  • 批量修改xml文件下某个标签内容/文件存储路径 被labelimg框图逼疯的我,参考了好久的资料,含泪写下了这个批量处理标签的文件,废话不多说了,直接上货。 一、待处理的xml文件内容 <annotation> <folder&...
  • 批量修改多人标注的xml,使之统一方便训练 """ 批量修改多人标注的xml,使之为之统一方便训练 对folder,filename和path内容进行修改,并同时去除文件名中的中文汉字 """ import re import os import xml.etree....
  • 由于标注时候的粗心大意,pedestrian被写的五花八门,因此标注生成的xml文件里的name节点就不统一,后续读入就会出错。 因此就需要统一更改name节点的pedestrian,如果不是pedestrian就改成pedestrian,简单但有效。...
  • python批量修改xml内容和属性

    千次阅读 2019-03-16 17:46:25
    把原始的xml文件 修改为 # -*- coding: utf-8 -*- &amp;quot;&amp;quot;&amp;quot; Created on Sat Mar 16 10:25:40 2019 @author: w &amp;quot;&amp;quot;&amp;quot; ...
  • python 批量修改 labelImg 生成的xml文件的方法发布时间:2020-10-26 04:08:12来源:脚本之家阅读:92作者:Miscellaneous0712概述自己在用labelImg打好标签后,想只用其中几类训练,不想训练全部类别,又不想重新...
  • 本文针对批量修改代码进行记录,很简单,删掉了针对项目的主要内容。 导入文件 首先将文件夹中的所有文件存到数字中: def file_list(path): # 传入存储的list f_list = os.listdir(path) # 将文件按首字母进行...
  • 1. python批量修改文件名(控制文件名的起始编号) import os path = "E:/Project/label/fire/" # 目标路径 filename_list = os.listdir(path) # 扫描目标路径的文件,将文件名存入列表 t = 0 a = 900 # 文件名的...
  • # 批量修改整个文件夹所有的xml文件 def change_all_xml(xml_path): filelist = os.listdir(xml_path) print(filelist) # 打开xml文档 for xmlfile in filelist: doc = ET.parse(xml_path + xmlfil..
  • 批量修改 labelImg 生成的xml文件

    千次阅读 2019-01-22 19:45:25
    使用tensorflow对目标检测图像进行数据训练时,需要标注大量的图像。这个工作量实在是不少。为了更加简便的标注图像,或者说增加训练集: ...由于之前有相应的xml文件模板,所以我们只需要修改之前的...
  • 批量导入xml文件

    2021-08-20 09:53:45
    多个文件夹中提取文本 可能在搜集完资料之后,发现自己想要的文件分散于多个文件夹中,一个一个的点开,再复制粘贴未免太傻了,我们可以直接在资源管理器...好的,我们开始进入正题,如何批量导入xml文件。我在网上找到

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,829
精华内容 21,931
关键字:

批量修改xml文件name