Alle Züge sind in einer Textdatei gespeichert, die wie folgt aufgebaut ist: 150, 0, 060, 340,-1, 01008, 0, 0.14, 0.3, 0.1 200, 0, 120, 340,-1, 00119, 0, 0.14, 0.3, 0.1 40, 5, 400, 340,-1, 04321, 0, 0.14, 0.2, 0.1 x Eine Zeile steht für einen Zug, dessen Eigenschaften in folgender Codierung aufgelistet sind (durch Kommata getrennt): - Maximalgeschwindigkeit - Istgeschwindigkeit - Personen an Bord - Planmäßige Ankunftzeit - tatsächliche Ankunftszeit (-1, wenn noch nicht angekommen) - Zugnummer zur Identifikation - Ort auf der Strecke - Prozentsatz der auf Kategorie 1 umsteigen wird - Prozentsatz der auf Kategorie 2 umsteigen wird - Prozentsatz der auf Kategorie 3 umsteigen wird Diese Datei wird zeilenweise Ausgelesen und jede Zeile einem Listenelement zugewiesen, welches aus einer Zeile ein Wörterbuch macht, das dann ausgelesen werden kann: def reader(datei): text = open(datei, "r") # Datei wird geoeffnet ausgabe = [] while 1==1: #Endlosschleife zum Abarbeiten der Date zeile = text.readline() # Datei wird nun Zeile fuer Zeile eingelesen zeile = zeile.strip('\n') # Ein Zeilenumbruchzeichen am Ende wird entfernt if zeile[0] == "x": break else: zug=list(zeile.split(',')) # Die Zeile wird in eine Liste transformiert zug=[z.strip() for z in zug] #Diese List wird nun in ein Woerterbuch eingelesen: wbzug = {"vavg" : int(zug[0]), "vist" : int(zug[1]), "besetzung" : int(zug[2]), "ankunftplan" : int(zug[3]), "ankunft" : int(zug[4]), "nummer" : int(zug[5]), "ort" : int(zug[6]), "auf1" : float(zug[7]), "auf2" : float(zug[8]), "auf3" : float(zug[9])} ausgabe.append(wbzug) # Die Woerterbuecher werden als "Anfangsreihenfolge" aufgelistet text.close() return ausgabe # Diese Liste wird zurueckgeliefert, die Datei ist eingelesen. Eine eingelesene Zugliste, wie sie den Simulations- und Auswertungsprogrammen übergeben wird, sieht dann wie folgt aus (sehr klobig). Die Einzelnen Züge sind in Wörterbüchern, die wiederum sind in einer Liste geordnet (die "Reihenfolge"). Hier die eingelesene Liste aus dem Beispiel oben (etwas irritierend sortiert, da Wörterbücher ja keine Reihenfolge besitzen): [{'ankunft': -1, 'nummer': 1008, 'besetzung': 60, 'vist': 0, 'auf1': 0.14, 'ort': 0, 'auf3': 0.1, 'auf2': 0.3, 'ankunftplan': 340, 'vavg': 150}, {'ankunft': -1, 'nummer': 119, 'besetzung': 120, 'vist': 0, 'auf1': 0.14, 'ort': 0, 'auf3': 0.1, 'auf2': 0.3, 'ankunftplan': 340, 'vavg': 200}, {'ankunft': -1, 'nummer': 4321, 'besetzung': 400, 'vist': 5, 'auf1': 0.14, 'ort': 0, 'auf3': 0.1, 'auf2': 0.2, 'ankunftplan': 340, 'vavg': 40}]