python删除文件夹下所有xml文件中重复的词条
来源:互联网 发布:mysql怎么自动同步 编辑:程序博客网 时间:2024/04/30 15:39
本文中的代码实现删除一个文件夹下所有的xml文件中的重复词条(重复词条指同一个xml中的)。
例如有下列目录结构(上传不了图片):
res:(目录)
value:(子目录)
string.xml
valus-es:(子目录)
string.xml
要删除子目录下string.xml中的重复词条,就可以使用下面的代码,将代码保存为.py文件放在res下。
进入res目录运行.py文件即可。
#!/usr/bin/python# -*- coding: UTF-8 -*-from xml.dom.minidom import parsefrom xml.dom.minidom import Documentimport xml.dom.minidomimport xml.dom.minidom as Domimport osimport os.pathimport codecsimport globpath = os.path.abspath('.')print pathdirNames = [x for x in os.listdir('.') if os.path.isdir(x)]#当前目录下的所有文件夹for name in dirNames: if "value" in name:#文件夹名中含value print path+"\\"+name#打印文件夹名 newPath=path+"\\"+name files=glob.glob(newPath+"\*.xml")#找出所有含value文件夹中的xml文件 for file in files:#对xml文件中重复的词条进行删除 print file newFile=(os.path.basename(file).split("."))[0]+".xml" newfile2= file#newPath + "\\" + newFile print "newfile2: %s" % newfile2 DOMTree=xml.dom.minidom.parse(file) Collection=DOMTree.documentElement strs=Collection.getElementsByTagName("string") i=0 a=len(strs) for str in strs: j=i for str1 in strs: strName=str.getAttribute("name") strContext=str.childNodes[0].data str1Name=strs[j+1].getAttribute("name") str1Context=strs[j+1].childNodes[0].data j=j+1 if (strName==str1Name) and (strContext==str1Context):#有重复生成新文件 #Collection.removeChild(strs[j+1]) Collection.removeChild(str) f = codecs.open(newfile2,'w','utf-8') DOMTree.writexml(f,encoding = 'utf-8')#不需要单独在设置格式 f.close() #print strName if j==(a-1): break i=i+1 if i==(a-1): break运行效果参见老司机
阅读全文
0 0
- python删除文件夹下所有xml文件中重复的词条
- python删除xml文件中重复词条
- VC下删除文件夹中所有文件
- Python语言: 删除文件夹下所有文件和子文件夹
- 删除一个文件夹下的所有文件
- 删除文件夹下的所有文件
- 删除文件夹下所有的文件
- C#删除文件夹下所有的文件
- 删除某个文件夹下的所有文件
- 删除文件夹及其下的所有文件
- 删除文件夹下所有的.git文件
- java 删除文件夹下的所有文件
- java删除文件夹下的所有文件
- 删除文件夹下的所有文件
- 删除文件夹下所有的文件
- 删除文件夹下所有文件
- 删除文件夹下所有文件
- python列出文件夹下的所有文件
- xcode 调试命令
- Cocos网络篇[3.2](3) ——Socket连接(1)
- DAY50 CSS基础2
- printf 格式
- Android 问题:List of devices attached unauthorized
- python删除文件夹下所有xml文件中重复的词条
- hdu 1166 敌兵布阵(线段树)
- 【深度学习】【Caffe源代码解读1】笔记19 Caffe的基本数据结构之Blob
- springboot(九):定时任务
- 字符串创建的方式,双引号在常量池创建,用new普通对象的创建方式。
- JavaScript中的this关键字
- 步进电机扭矩计算公式
- 纪念oracel连接
- CSS绝对定位(absolute)与相对定位(relative)