Estoy buscando una forma de convertir varios miles de archivos .xml en .csv. No he tenido problemas para hacerlo en pequeñas cantidades, pero los datos con los que estoy trabajando están dentro de varios miles de carpetas. Más específicamente, estoy viendo datos de juegos de la MLB en el transcurso de una sola temporada. Cada juego tiene su propia carpeta separada dentro de otras carpetas para el día y el mes. Dentro de cada carpeta de juego hay varios archivos, sin embargo, solo estoy interesado en un archivo .xml llamado inning_all.xml para cada juego. Necesito convertir estos ~2,500 archivos en archivos .csv para que Stata los interprete (stata tiene una función de importación xml incorporada pero es incompatible con estos archivos específicos; se pueden importar después de convertirlos a .csv).
No ha dicho nada sobre sus limitaciones tecnológicas, pero
(a) la conversión de XML a CSV se realiza fácilmente con cualquier procesador XSLT
(b) Los procesadores XSLT 2.0 como Saxon suelen tener la capacidad de procesar varios archivos en estructuras de directorio mediante las funciones collection() o uri-collection().
La cantidad de archivos no es un problema: procesé cantidades mucho mayores que esta en un minuto o dos, y la implementación de la función collection () de Saxon tiene varios subprocesos, por lo que se escala bien.
Sugeriría usar python con las bibliotecas integradas de análisis os.walk , csv y xml como expat .
usuario416
usuario416
Guettli