ich habe leider keine passende Lösung für mein spezielles Problem gefunden und würde mich freuen, hier mein Glück zu finden
Konkret habe ich folg. Problem:
Alle Dateien eines Ordners enthalten XML-Dateien, die alle eingelesen/geparsed werden sollen, was prinzipiell schon funktioniert. Je nach Dateiname, welcher die "Kategorie" der Obj. beschreibt, sollen die gelesenen XML-Objekte gruppiert, also am Einfachsten in eine Liste "kategorieX" gespeichert werden.
Die Dateien sehen z.B. wie folgt aus:
fahrzeugX1_markeY1_baujahrZ1.xml
fahrzeugX1_markeY1_baujahrZ2.xml => Die 3 XML-Objekte dieses 3er Blocks (Kategorie: selbes Fahrzeug und selbe Marke) sollen in eine Liste, da sie zur selben KategorieXY gehören
fahrzeugX1_markeY1_baujahrZ3.xml
...
fahrzeugX1_markeY2_baujahrZ4.xml
fahrzeugX1_markeY2_baujahrZ5.xml
fahrzeugX1_markeY2_baujahrZ6.xml
...
fahrzeugX2_markeY3_baujahrZ7.xml
Dafür habe ich erst mal eine Liste erstellt, die alle Dateinamen aufnimmt:
Code: Alles auswählen
filesAll = [ f for f in listdir(pfad) if isfile(join(pfad,f)) ]
Code: Alles auswählen
for f in filesAll:
if 'fahrzeugX1_markeY1' in f:
xmlObjList_fahrzeugX1_markeY1.append( parse(pfad + f) ) # = Liste von parsed XML-Objekten derselben Kategorie fahrzeugX1_markeY1
elif 'fahrzeugX1_markeY2' in f:
xmlObjList_fahrzeugX1_markeY2.append( parse(pfad + f) )
usw.
Das eigentliche Problem ist aber, dass in den if-Verzweigungen noch Funktionsaufrufe implementiert werden müssen, wo als akt. Parameter "xmlObjList_KategorieX", also eine Liste mit gruppierten XML-Objekten übergeben werden müssen, also in jeder Verzweigung folgender Aufruf:
Code: Alles auswählen
funktion(xmlObjList_KategorieXY)
Hoffe, die Beschreibung war nicht zu kompliziert und würde mich über Ideen freuen. Danke schon mal!