利用Python进行XML转CSV
#!/usr/bin/python
#XMLtoCSV.py
#encoding:utf-8
import csv, os
from xml.dom.minidom import parse
def createCSVFile(filePrefix):
csvFile = open(filePrefix+'.csv', 'wb') #注意是二进制写入,否则会有多余空格
csvWriter = csv.writer(csvFile)
bWriteHead = False
xmlFile = open(filePrefix+'.xml')
domTree = parse(xmlFile)
#print domTree
root = domTree.documentElement
#print dir(collection)
for node in root.childNodes:
if node.nodeType == node.ELEMENT_NODE:
#print node.nodeName
element = {}
for key in node.attributes.keys():
value = node.attributes.get(key).value
element[key] = value
if len(element) > 0:
if bWriteHead == False:
csvWriter.writerow(tuple(element.keys()))
bWriteHead = True
csvWriter.writerow(tuple(element.values()))
else:
print node.attributes
csvFile.close()
xmlFile.close()
def main():
for root, dirs, files in os.walk(os.getcwd()):
print root, dirs, files
for fname in files:
index = fname.find('.xml')
if index > 0:
#print index, fname[:index]
createCSVFile(fname[:index])
print "Transform " + fname + " OK!"
if __name__ == '__main__':
main()
input("Game Over!")
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341