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

时间:2018-04-25 08:57:14

标签: python xml pandas elementtree

我在jupyter笔记本上解析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 个答案:

答案 0 :(得分:1)

要列出目录中的所有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)