PythonによるCSV転送XML

1438 ワード

#!/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!")