Python crea XML desde Csv dentro de un bucle

Estoy tratando de crear un archivo xml desde un csv

CSV:

CatOne, CatTwo, CatThree ProdOne, ProdTwo, ProdThree ProductOne, ProductTwo, ProductThree 

XML deseado:

   ProdOne ProdTwo ProdThree   ProductOne ProductTwo ProductThree   

Aquí está mi código:

 #! usr/bin/python # -*- coding: utf-8 -*- import csv, sys, os from lxml import etree def main(): csvFile = 'test.csv' xmlFile = open('myData.xml', 'w') csvData = csv.reader(open(csvFile), delimiter='\t') header = csvData.next() details = csvData.next() details2 = csvData.next() root = etree.Element('root') prod = etree.SubElement(root,'prod') for index in range(0, len(header)): child = etree.SubElement(prod, header[index]) child.text = details[index] prod.append(child) prod = etree.SubElement(root,'prod') for index in range(0, len(header)): child = etree.SubElement(prod, header[index]) child.text = details2[index] prod.append(child) result = etree.tostring(root, pretty_print=True) xmlFile.write(result) if __name__ == '__main__': main() 

Estoy obteniendo el resultado deseado, pero la forma en que lo estoy haciendo es una mierda. Me gustaría tenerlo de alguna manera genérica y creo que es posible mucho más python. Pero no sé cómo hacerlo. El código también debería funcionar, si el csv tiene 10 o incluso 20 líneas.

Gracias por la ayuda

Ok me enteré de cómo resolverlo.

Responderé mi propia pregunta aquí, podría ser ayudar a alguien más, espero

 #! usr/bin/python # -*- coding: utf-8 -*- import csv, sys, os from lxml import etree def main(): csvFile = 'test.csv' xmlFile = open('myData.xml', 'w') csvData = csv.reader(open(csvFile), delimiter='\t') header = csvData.next() counter = 0 root = etree.Element('root') for row in csvData: prod = etree.SubElement(root,'prod') for index in range(0, len(header)): child = etree.SubElement(prod, header[index]) child.text = row[index].decode('utf-8') prod.append(child result = etree.tostring(root, pretty_print=True) xmlFile.write(result) if __name__ == '__main__': main()