利用Python进行XML转CSV
2014-11-27 10:07
183 查看
#!/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!")
#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!")
相关文章推荐
- 利用Python进行CSV转XML
- 存储过程导出csv文件,利用xml对csv文件内容进行批量处理
- Windows下为了R的读入利用python对csv文件进行编码转换
- 利用xslt对xml进行缩进格式化处理
- [导入]利用xslt对xml进行缩进格式化处理
- 利用XSL对XML数据进行加密和大小写转换
- 利用xslt对xml进行缩进格式化处理
- 利用Java技术进行XML编程,第2部分(续)
- 利用xslt对xml进行缩进格式化处理
- C#对XML的操作,利用DataSet对XML进行操作。
- 利用XSL对XML数据进行加密和大小写转换
- 利用python特性进行提权
- 利用xslt对xml进行缩进格式化处理
- 利用xslt对xml进行缩进格式化处理
- 利用Java技术进行XML编程(续)
- Python、PHP通过xml-rpc进行通信,xml-rpc中文的解决
- 利用xslt对xml进行缩进格式化处理
- [导入]利用XSL对XML数据进行加密和大小写转换
- 【笔记】利用java进行xml编程(IBM developerworks )
- 利用python处理xml -- 中文编码问题