Python将xml附加到新创建的xml文件中

Python将xml附加到新创建的xml文件中,python,xml,csv,elementtree,Python,Xml,Csv,Elementtree,我正在工作,试图制作一个脚本,只将选定的xml从添加到新创建的xml文件(从csv)。这是我到目前为止得到的…为格式化道歉 从csv创建脚本-工作: 等等。。 (xml是在我的csv脚本之后创建的..) 现在,我想将同一目录中的xml追加到新创建的xml文件的末尾 将xml追加到新脚本中-失败! xmlFiles=[x代表os.listdir('.'),如果x.endswith('.xml')或f.endswith('.xml')] 对于xmlFiles中的xmlFile: tree=ET.pa

我正在工作,试图制作一个脚本,只将选定的xml从添加到新创建的xml文件(从csv)。这是我到目前为止得到的…为格式化道歉

从csv创建脚本-工作: 等等。。 (xml是在我的csv脚本之后创建的..) 现在,我想将同一目录中的xml追加到新创建的xml文件的末尾

将xml追加到新脚本中-失败!
xmlFiles=[x代表os.listdir('.'),如果x.endswith('.xml')或f.endswith('.xml')]
对于xmlFiles中的xmlFile:
tree=ET.parse(xmlFile)
Meta=tree.getroot()
a=Meta.find('Speaker')
a1=Meta.find('设备')
b=ET.子元素(a,‘扬声器’)
c=ET子元素(b,‘设备’)
对于范围内的i(len(标记)):
标记[i]=标记[i]。替换(“”,“”)
其他:
xmlData.write(“”+“\n”)
对于范围内的i(len(标记)):
xmlData.write(“”+“”)\
+第[i]+'+“\n”行)
xmlData.write(“”+“\n”)
rowNum+=1
xmlData.write(“”+“\n”)
xmlData.close()
打印ET.tostring(元)

另外,如果有更好的、不同的方法和参考,我会很高兴:)谢谢

我最终删除了所有这些,并使用了lxml模块。谢谢大家

我刚刚回答了一个问题。创建第一个XML后,使用XSLT使用Python的lxml模块与其他XML文档合并,无需手动在代码中重新创建。您似乎缺少一些进入外部for循环的代码,可能是
if
语句。
if len(sys.argv) != 2:
    os._exit(1)
path=sys.argv[1] # get folder as a command line argument
os.chdir(path)
csvFiles = [f for f in os.listdir('.') if f.endswith('.csv') or f.endswith('.CSV')]
for csvFile in csvFiles:
    xmlFile = csvFile[:-4] + '.xml'
xmlFiles = [x for x in os.listdir('.') if x.endswith('.xml') or f.endswith('.XML')]
for xmlFile in xmlFiles:

tree = ET.parse(xmlFile)
Meta = tree.getroot()

a = Meta.find('Speaker')
a1 = Meta.find('Device')

b = ET.SubElement(a, 'speaker')
c = ET.SubElement(b, 'device')
for i in range(len(tags)):
        tags[i] = tags[i].replace(' ', '_')
    else:
        xmlData.write('<row>' + "\n")
        for i in range(len(tags)):
            xmlData.write('    ' + '<' + tags[i] + '>' \
                          + row[i] + '</' + tags[i] + '>' + "\n")
        xmlData.write('</row>' + "\n")
    rowNum +=1
xmlData.write('</csv_data>' + "\n")
xmlData.close()

print ET.tostring(Meta)