Code: Alles auswählen
# SimpleCfg.py
from os import path
from os import environ
class cfg:
def __init__(self,Datei):
if not path.isfile(Datei):
raise "Datei "+Datei+" existiert nicht! Aktueller Pfad:",path.abspath(".")
try:
CfgDatei=open(Datei,"r")
except:
raise "Öffnen von:"+Datei+" fehlgeschlagen!"
self.CfgDaten={}
while 1:
Zeile = CfgDatei.readline()
if not Zeile:
break
if not Zeile[0]=="#" and ":" in Zeile:
Daten=Zeile.split(":")
self.CfgDaten[Daten[0].strip()]=Daten[1].strip()
CfgDatei.close()
def getItem(self,Item,ErrorHandling=False):
if Item in self.CfgDaten:
return self.CfgDaten[Item]
elif ErrorHandling:
return False
else:
raise "Item: [",Item,"] nicht in Cfg-Datei gefunden!"
Code: Alles auswählen
# Beispiel.cfg
# Kommentar
Name: Wert
Wert: 1
Python ist wie?: Python ist super!
Code: Alles auswählen
# test.py
import SimpleCfg
MyCfg=SimpleCfg.cfg("Beispiel.cfg")
print MyCfg.getItem("Name")
print MyCfg.getItem("Wert")
print MyCfg.getItem("Python ist wie?")
Code: Alles auswählen
Wert
1
Python ist super!
Zu beachten ist, das alle Ergebnisse erstmal ein String sind. Also auch Wert=1 ist eigentlich Wert="1"

Das "ErrorHandling" bei der Funktion getItem produziert Standartmäßig einen fehler, wenn ein Wert nicht gefunden wird, aber so kann man es verhindern:
print MyCfg.getItem("NichtVorhanden", True)
Dann erhält man nur ein False zurück und kann es irgendwie anders handeln...