Ich suche nach einer Möglichkeit, mehrere tausend .xml-Dateien in .csv umzuwandeln. Bei kleinen Mengen hatte ich damit keine Probleme, aber die Daten, mit denen ich es zu tun habe, befinden sich in mehreren tausend Ordnern. Genauer gesagt schaue ich mir MLB-Spieldaten im Laufe einer einzelnen Saison an. Jedes Spiel hat seinen eigenen separaten Ordner innerhalb anderer Ordner für Tag und Monat. In jedem Spielordner befinden sich mehrere Dateien, aber ich interessiere mich nur für eine .xml-Datei namens inning_all.xml für jedes Spiel. Ich muss diese ~2.500 Dateien in .csv-Dateien konvertieren, um von Stata interpretiert zu werden (Stata hat eine eingebaute XML-Importfunktion, ist aber mit diesen spezifischen Dateien nicht kompatibel; sie können nach der Konvertierung in .csv importiert werden).
Sie haben nichts über Ihre technologischen Einschränkungen gesagt, aber
(a) Das Konvertieren von XML in CSV ist mit jedem XSLT-Prozessor problemlos möglich
(b) XSLT 2.0-Prozessoren wie Saxon haben normalerweise die Fähigkeit, mehrere Dateien in Verzeichnisstrukturen zu verarbeiten, indem sie die Funktionen collection() oder uri-collection() verwenden.
Die Anzahl der Dateien ist kein Problem – ich habe viel größere Mengen als diese in ein oder zwei Minuten verarbeitet, und Saxons Implementierung der Funktion collection() ist multithreaded, sodass sie gut skaliert werden kann.
Ich würde vorschlagen, Python mit den eingebauten os.walk- , CSV- und XML-Parse-Bibliotheken wie expat zu verwenden .
Benutzer416
Benutzer416
Güttli