Я ищу способ конвертировать несколько тысяч файлов .xml в .csv. У меня не было проблем с этим в небольших количествах, но данные, с которыми я имею дело, находятся в пределах нескольких тысяч папок. В частности, я просматриваю игровые данные MLB за один сезон. Каждая игра имеет свою отдельную папку в других папках для дня и месяца. В каждой папке с игрой есть несколько файлов, однако меня интересует только один файл .xml с именем inning_all.xml для каждой игры. Мне нужно преобразовать эти ~ 2500 файлов в файлы .csv, чтобы их интерпретировала Stata (у stata есть встроенная функция импорта xml, но она несовместима с этими конкретными файлами; их можно импортировать после преобразования в .csv).
Вы ничего не сказали о своих технологических ограничениях, но
(a) преобразование XML в CSV легко выполняется с помощью любого процессора XSLT
(b) Процессоры XSLT 2.0, такие как Saxon , обычно имеют возможность обрабатывать несколько файлов в структурах каталогов с помощью функций collection() или uri-collection().
Количество файлов не является проблемой — я обрабатывал гораздо большие объемы за минуту или две, а реализация функции collection() в Saxon является многопоточной, поэтому она хорошо масштабируется.
Я бы предложил использовать python со встроенными библиотеками синтаксического анализа os.walk , csv и xml, такими как expat .
пользователь416
пользователь416
гетли