#!/usr/bin/env python # # Testprogramm "Systemdatei auswerten" # Datei: arnh_py/test_sysprot.py # Quelle: W.Arnhold, Okt 2000 # Anpassung: K-D Bombei, Nov 2003 # Für ein Programm sollen die vom System verwendeten Protokollnummern # gelesen und in einem Dictionary gespeichert werden. # Die Datei "protocols" enthält Kommentarzeilen, die mit einem Gartenzaun beginnen. # Auch Leerzeilen (oder enthalten sie Leerzeichen?) sind zu sehen. # Die eigentlichen Informationen stehen in den andern Zeilen, die stets den # gleichen Aufbau haben: Protokoll in Kleinbuchstaben, die Protokollnummer, # das Protokoll noch mal in Großbuchstaben und ein Kommentar. # Uns interessieren die ersten beiden Spalten. import string import sys protnummerndatei = open ("protocols", "r") proto_dict = {} # Leeres Dictionary erzeugen while 1: zeile = protnummerndatei.readline() if not zeile: break if zeile[-1] == '\n': zeile = zeile[:-1] # Zeilenwechselzeichen abschneiden zeile = string.strip(zeile) # Leerzeichen am Anfang und Ende abschneiden if not zeile: # Falls die Zeile nun leer continue # nächste Zeile lesen if zeile[0] == '#': # Falls Kommentarzeile continue # nächste Zeile lesen # Was nun übrigbleibt, ist verwertbar. Die Zeile wird anhand von # Leerzeichen und Tabulatorzeichen in eine Liste von Worten zerlegt. teile = string.split(zeile) # Die ersten beiden sind Interessant. # Der erste wird Schlüssel, der zweite der Wert. # Vorher noch eine kleine Sicherheitsabfrage: if len(teile) < 2: print 'Fehler in der Protkolldatei!' sys.exit(-1) # Nun eintragen: proto_dict[teile[0]] = teile[1] protnummerndatei.close() print 'Die Protokolle haben folgende Nummern:' for protokoll in proto_dict.keys(): print '\t%s\t-->\t%s' % (protokoll, proto_dict[protokoll])