利用Python进行CSV转XML

发布时间:2019-09-07 08:12:51编辑:auto阅读(2039)

    #!/usr/bin/python
    
    #CSVtoXML.py
    
    #encoding:utf-8
    import csv, os
    from xml.dom.minidom import Document
    
    #prfixFile = "creature_data"
    
    def createXMLFile(filePrefix):
        csvFile = open(filePrefix+'.csv');
        headLine = csvFile.readline()
        #print headLine
        typeList = headLine.split(',')
    
        doc = Document()
        dataRoot = doc.createElement(filePrefix+'List')
        dataRoot.setAttribute('xmlns:xsi', "http://www.w3.org/2001/XMLSchema-instance")
        dataRoot.setAttribute('xsi:schemaLocation', filePrefix+'.xsd')
        doc.appendChild(dataRoot)
    
        csvReader = csv.reader(csvFile)
        for line in csvReader:
            #print line
            dataElt = doc.createElement(filePrefix)
            for i in range(len(typeList)):
                dataElt.setAttribute(typeList[i], line[i])
            dataRoot.appendChild(dataElt)
    
        xmlFile = open(filePrefix+'.xml','w')
        xmlFile.write(doc.toprettyxml(indent = '\t'))
        xmlFile.close()
    
    def main():
        for root, dirs, files in os.walk(os.getcwd()):
            for fname in files:
                index = fname.find('.csv')
                if index > 0:
                    #print index, fname[:index]
                    createXMLFile(fname[:index])
                    print "Transform " + fname + " OK!"
    
    if __name__ == '__main__':
        main()
        input("Game Over!")


关键字