Как читать все XML-файлы один за другим и обрабатывать их один за другим - PullRequest
0 голосов
/ 25 апреля 2018

Я анализирую xml-файл на ноутбуке jupyter и использую этот код для открытия файла:

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 голосов
/ 25 апреля 2018

Чтобы перечислить все xml файлы в вашем каталоге, вы можете использовать , например glob (второй ответ) .

Это может выглядеть так:

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