使用CSV生成XML文件

时间:2013-05-31 14:57:14

标签: python xml csv

我对生成它们后格式化xml文件有疑问。这是我的代码:

 import csv
 from xml.etree.ElementTree import Element, SubElement, Comment, tostring
 from xml.etree.ElementTree import ElementTree
 import xml.etree.ElementTree as etree

 root = Element('Solution')
 root.set('version','1.0')
 tree = ElementTree(root)

 head = SubElement(root, 'DrillHoles')
 head.set('total_holes', '238')

 description = SubElement(head,'description')


 with open ('1250_12.csv', 'r') as data:
      current_group = None
      reader = csv.reader(data)
      i = 0
      for row in reader:
          if i > 0:
               x1,y1,z1,x2,y2,z2,cost = row
               if current_group is None or i != current_group.text:
                   current_group = SubElement(description, 'hole',{'hole_id':"%s"%i})

               information = SubElement (current_group, 'hole',{'collar':', '.join((x1,y1,z1)),
                                                     'toe':', '.join((x2,y2,z2)),
                                                     'cost':    cost})
          i+=1

生成以下xml文件:

<?xml version="1.0"?>
-<Solution version="1.0">
     -<DrillHoles total_holes="238">
           -<description>
                 -<hole hole_id="1">
                        <hole toe="5797.82, 3061.01, 2576.29" cost="102.12" collar="5720.44, 3070.94, 2642.19"/></hole>

这只是xml文件的一部分,但它足以满足此目的。 有很多事情我想改变,首先是我希望脚趾,成本和领子在不同的线上如此:

    <collar>0,-150,0</collar>
    <toe>69.9891,-18.731,-19.2345</toe>
    <cost>15</cost>

并且我希望它按照衣领然后脚趾的顺序然后显示在上面。 此外,在xml文件中显示:“hole toe =”5797.82,3061.01,2576.29“,我怎么摆脱这个洞呢?是的,关于它,我对这个python的事情真的很新,所以对我很轻松。哈哈

0 个答案:

没有答案