xml文件存在没有object根目录的情况进行删除
调用其他库可能存在无法解析的情况,根据xml文件中,annotation标签下的根目录判断是否存在object,并结合对应图片进行删除
import xml.dom.minidom
import os
path = r'E:\busandstation_data\Annotations' # xml文件存放路径
# sv_path = r'D:\coco_unzip\myxmlsave' # 修改后的xml文件存放路径
image_path = r'E:\busandstation_data\JPEGImages' # img文件存放路径
img_name = os.listdir(image_path)
files = os.listdir(path)
count = 1
for xmlFile in files:# 加载xml文件到内存中dom = xml.dom.minidom.parse(os.path.join(path, xmlFile)) # 打开xml文件,送到dom解析# 获取根节点信息annotation = dom.getElementsByTagName('annotation')# 打印的结果是只有一个数据的列表 annotation = [<DOM Element: annotation at 0x1ffcd0ad310>]# 判断文件中是否存在annotation节点if annotation and len(annotation) > 0:# 根据tag名,从annotation中获取所有的tag=object的节点列表# 从annotation的打印信息可以看出,通过getElementsByTagName获取到的数据都是列表,所以需要使用annotation[0]annotationList = annotation[0].getElementsByTagName('object')if annotationList == []:count += 1
# os.remove(os.path.join(path,xmlFile))# dom = xml.dom.minidom.parse(r'D:\coco_unzip\mybulidvoc_annotation\000000000724.xml') # 打开xml文件,送到dom解析# root = dom.documentElement # 得到文档元素对象# item = root.getElementsByTagName('name') # 获取filename这一node名字及相关属性值# 获取根节点信息annotation = dom.getElementsByTagName('annotation')# 打印的结果是只有一个数据的列表 annotation = [<DOM Element: annotation at 0x1ffcd0ad310>]# 判断文件中是否存在annotation节点if annotation and len(annotation) > 0:# 根据tag名,从annotation中获取所有的tag=object的节点列表# 从annotation的打印信息可以看出,通过getElementsByTagName获取到的数据都是列表,所以需要使用annotation[0]filename = annotation[0].getElementsByTagName('filename')address = filename[0].firstChild.dataprint(address)new_name = address + '.jpg'os.remove(os.path.join(path,xmlFile))os.remove(os.path.join(image_path,new_name))else:print(False)
print(count)
xml文件存在没有object根目录的情况进行删除相关推荐
- 检查XML文件内<object>(有几个label)的数量
检查XML文件内(有几个label)的数量 对于手工标注的数据集,在标注完成后需检查图片里object的数量,可能出现漏标(每张图片的label有3个,而有的标签文件里object只有1或2个),空标 ...
- .NET 3.5(14) - XLINQ(LINQ to XML)之针对XML文件的添加、查询、更新和删除
步步为营VS 2008 + .NET 3.5(14) - XLINQ(LINQ to XML)之针对XML文件的添加.查询.更新和删除 作者:webabcd 介绍 以某一XML文件为例,XLINQ(L ...
- xml文件中若没有子节点,则删除文件
//若没有子节点则删除xml文件 TiXmlNode *Root=mDocument->RootElement(); TiXmlNode *roott=mDocument->FirstCh ...
- 解决struts.xml文件提示问题
[Struts2]☆★之解决struts.xml文件提示问题 首先需要下载struts架包,下载步骤详情请看[web开发]☆★之Struts2系列教程[1]搭建Struts2开发环境. 下载之后我们新 ...
- jdom 读取xml_JDOM分析器–将XML文件读取为Java对象
jdom 读取xml JDOM parser provides us a great Java XML API to read, edit and write XML documents easily ...
- xml转对象 jdom_JDOM从对象编写XML文件示例
xml转对象 jdom In last tutorial we learned basics of Java JDOM and how we can read XML file to Object. ...
- java基础 day12-FileInputStream类,文件的复制,缓冲流,Propertes文件,xml文件读写,网络socket编程(构建TCP客户端),内部类
FileInputStream类的其他常用方法() /**在project下新建temp文件,内容为abcdef*FileInputStream类的其他常用方法:* int available():返 ...
- comps.xml文件定制
参考:http://www.ibm.com/developerworks/cn/linux/l-custm/ 节选内容如下: 4.1 编辑comps.xml文件 在生成安装盘之前,需要注意对comps ...
- Flex【原创】Xml与Object互转/读写本地Xml文件
最近操作Xml文件比较多,因此封装了一下Xml文件操作类 主要功能包括: 1.Xml 转 Object 2.Object 转 Xml 3.读取本地Xml(air) 4.Xml写到本地(air) 代 ...
最新文章
- c++ memset 语言_自学C语言不知道从哪儿下手?学习框架都帮你列好了!
- Symfony学习笔记
- 你能找到心仪的妹子吗?- 时间复杂度进阶
- DeepMind Nando(原牛津大学教授)强化学习最新进展,含图文、公式和代码,附102页PPT下载...
- 记一次MySQL字符集冲突导致的报错
- 解读容器的 2020:寻找云原生的下一站
- Web应用安全————Shiro 解决会话固定漏洞
- zabbix监控系统时间的问题
- Recipe terminated with error. vscode latex-workshop新的配置文件
- 如何管理和组织一个机器学习项目
- 计算机存储成本,仓储成本
- 【Python】腾讯企业邮箱自动发邮件-发送多人并添加附件
- 超人视觉怎么样/机器视觉培训适合报培训班吗
- 常见健身器材EN ISO 20957认证标准有哪些
- java学习day58(乐友商城)乐友商城项目搭建、SE6语法使用
- 【HTML5】嵌入另一张HTML文档、通过插件嵌入内容、嵌入数字表现形式
- WordArt与everything联用生成含中文的词云
- Android如何自定义一个心电图控件?
- 2021年中国InGaAs+APD接收机市场趋势报告、技术动态创新及2027年市场预测
- 2014 年第六届全国大学生数学竞赛江西赛区赣南师范学院获奖名单(数学专业)
热门文章
- T61P 安装Win7 出现 Windows update 当前无法检查更新,因为未运行服务。您可能需要重新启动计算机
- Android插件化开发指南——实践之仿酷狗音乐首页(自定义ImageView控件)
- 浅谈Win10装机磁盘格式问题:windows无法安装到这个磁盘 选中的磁盘采用GPT分区形式
- shiro整合springboot,配置mybatis和增加邮箱验证码登录
- 深度优先搜索 广度优先搜索理解
- matlab 倍频,matlab倍频程分析
- “泰山众筹”模式的详细玩法
- 艾美捷EndoGrade卵清蛋白,不含内毒素
- CentOS7搭建github
- PX4IO的编译过程、代码构架以及与PX4FMU的通讯分析