#!/usr/bin/python # -*- coding: iso-8859-1 -*- # Einfaches lesen und umformatierte Ausgabe eine Schubdatei # noch keine Fehlerbehandlung # Changes: # 06.10.2006, mJ: Falsche Berechnung des Gesamtimpulses korrigiert # Initialisierung # Anfänglich Kommentare als Meta-Daten bearbeiten und speichern metabearbeitung = True daten = [] # Normales Array mit integer als index kommentare = [] meta = {} # Dictionary (Array mit z.B. Text als index) # Einlesen datei = open( "beispiel2.txt" ) datei.readline() # Erste Zeile überlesen for zeile in datei: # Zeile am ; Zerhacken zeit, schub, kommentar = zeile.split( ";" ) # Von Text in Zahlen umwandeln zeit = float( zeit ) schub = float( schub ) # Überflüssige Leerzeichen weg kommentar = kommentar.strip() # Schubdaten merken daten.append( (zeit, schub) ) # Leerer Kommentar => Meta-Daten-bearbeitung beenden if not kommentar: metabearbeitung = False if metabearbeitung: # Kommentar nach name und Wert zerstückeln und merken try: name, wert = kommentar.split( ": " ) meta[name] = wert except: print "Kommentarformat?", kommentar else: if kommentar: # nur kommentare, die etwas enthalten merken kommentare.append( kommentar ) # Daten ausgeben & Gesamtimpuls berechnen print "Motor <%s> am %s Uhr bei %s, Luftdruck %s" % ( meta["Motor"], meta["Datum"], meta["Temperatur"], meta["Luftdruck"] ) letzte_zeit = 0.0 gesamtimpuls = 0.0 for zeit, schub in daten: print "%10.5fs: %6.2fN" % ( zeit, schub ) if letzte_zeit: gesamtimpuls += schub *(zeit-letzte_zeit) letzte_zeit = zeit brenndauer = daten[-1][0] - daten[0][0] print "Gesamtimpuls = %5.2fN/s" % gesamtimpuls print "Kommentare:", for k in kommentare: print k