【问题标题】:Python Append xml to newly made xml FilePython 将 xml 追加到新建的 xml 文件中
【发布时间】:2015-09-18 17:16:24
【问题描述】:

我正在工作并尝试制作一个脚本,该脚本仅将选定的 xml 添加到新创建的 xml 文件(来自 csv)中。这是我到目前为止所得到的......为格式化道歉

从 csv 创建脚本 - 有效:

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'

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

将 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)

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

【问题讨论】:

  • 我刚刚回复了similar question。创建第一个 XML 后,使用 XSLT 通过 Python 的 lxml 模块与其他 XML 文档进行合并,无需在代码中手动重新创建。
  • 您似乎遗漏了一些进入外部 for 循环的代码,可能是 if 语句。

标签: python xml csv elementtree


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    相关资源
    最近更新 更多