代码之家  ›  专栏  ›  技术社区  ›  M-M

如何逐个读取所有xml文件并逐个处理

  •  0
  • M-M  · 技术社区  · 6 年前

    我正在分析jupyter notebook上的xml文件,并使用以下代码打开一个文件:

    from lxml import etree as ET
    tree = ET.parse('C:\Users\mysky\Documents\Decoded\F804187.xml')
    root = tree.getroot()
    

    然后,我使用xpath和pandas进行一些处理,例如:

    CODE = [ ]
    for errors in root.findall('.//Book/Message/Param/Buffer/Data/Field[11]'):
        error_code = errors.find('RawValue').text
        if error_code is not None:
            CODE.append(error_code)  
    

    我有大约10个这样的小代码块用于提取数据,最后我将数据帧保存在CSV文件中。

    我有很多xml文件,我想读取 Decoded 一个接一个的目录,然后一个接一个地处理它们,并将每个结果附加到我的CSV文件中。

    谢谢

    1 回复  |  直到 6 年前
        1
  •  1
  •   Qback    6 年前

    列出所有 xml 您可以使用的目录中的文件 for example glob (second answer)

    它可以如下所示:

    import glob
    
    files = glob.glob('C:\Users\mysky\Documents\Decoded\*.xml')
    
        for file in files:
            tree = ET.parse(file)
            root = tree.getroot()
            CODE = [ ]
            for errors in root.findall('.//Book/Message/Param/Buffer/Data/Field[11]'):
                error_code = errors.find('RawValue').text
                if error_code is not None:
                    CODE.append(error_code)