@evgeh4ik

Как выполнять парсинг по xml файлам во всех вложенных каталогах?

Всем привет.

Есть следующая структура папок:
5d0b8f031f86c050844094.png

Мне нужно что бы парсер разбирал все файлы defaultVars и выводил результат в виде:
- Путь к файлу
- Результат парсинга

При помощи xml.dom.minidom написал следующее:

import xml.dom.minidom

doc = xml.dom.minidom.parse("c:/users/admin/defaultVars/defaultVars.xml")
data ={}
for info in doc.getElementsByTagName("globalVariable"):
    name = str(info.getElementsByTagName("name")[0].firstChild.data)
    value = str(info.getElementsByTagName("value")[0].firstChild.data)
    data[name]=value
print(data)


Результат таков:
5d0b8fc80cb0f921107184.png

Вопрос - каким образом реализовать поиск и последующий парсинг файла с именем defaultVars в том числе и во всех вложенных директориях?
И каким образом реализовать вывод в консоль в формате: директория - результат парсинга?

UPD 17:25

Получается вот так:

import os
import xml.dom.minidom

files = []
for rootdir, dirs, files in os.walk("C:/Users/fedyunin_es/Desktop/defaultVars"):
    for file in files:
        if file.split(".")[-1] == "defaultVars":
            files.append(os.path.join(rootdir, file))

doc = xml.dom.minidom.parse(file)
data ={}

for info in doc.getElementsByTagName("globalVariable"):
    name = str(info.getElementsByTagName("name")[0].firstChild.data)
    value = str(info.getElementsByTagName("value")[0].firstChild.data)
    data[name]=value
print(data)

Выпадает в ошибку:
5d0b9c8f9b9a5107074102.png
Думается, что проблема в doc = xml.dom.minidom.parse(file), но как поправить?
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 1
@FulTupFul
files = []
for rootdir, dirs, files in os.walk("some path"):
    for file in files:
        if file.split(".")[-1] == "defaultVars":
            files.append(os.path.join(rootdir, file))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы