Seite 1 von 1

ConfigParser - Werte richtig einlesen

Verfasst: Donnerstag 4. November 2010, 13:45
von kevelll
Hallo liebe python-Gemeinde,

ich benutze ein INI-File und lese die Werte mit dem ConfigParser ein. Mir ist aufgefallen das die Einträge in der INI-Datei ohne ein System eingelesen werden. Ich hätte erwartet, dass der ConfigParser die Werte nach der Reihenfolge einliest. Von unten nach oben bzw. von oben nach unten. Gibt es eine Möglichkeit das die Einträge in der gleichen Reihenfolge eingelesen werden wie sie auch in der INI-Datei stehen? Oder verwende ich den ConfigParser falsch? :K

Hier mein Codeausschnitt:

Code: Alles auswählen

def iniParserMaschines():
    import ConfigParser
    host        = []
    machine   = []
    mode       = []

    config = ConfigParser.ConfigParser()
    config.read("config.ini")
    
    for section in config.sections():
        if not section == "DEFAULTSETTINGS":
            machine.append(section) 
        for option in config.options(section):
            if not section == "DEFAULTSETTINGS":
                if option == "mode":
                    mode.append(config.get(section, option))
                if option == "host":
                    host.append(config.get(section, option))
                
    return host, machine, mode 



Über eine Antwort würde ich mich sehr freuen...Danke schon mal im voraus :!:

Re: ConfigParser - Werte richtig einlesen

Verfasst: Donnerstag 4. November 2010, 14:17
von BlackJack
@kevelll: Dem OptionParser liegen wohl ganz normale `dict`\s zugrunde und die haben nun einmal "beliebige" Reihenfolge bei den Einträgen. Eventuell wäre ja `ConfigObj` etwas für Dich.

Re: ConfigParser - Werte richtig einlesen

Verfasst: Donnerstag 4. November 2010, 14:37
von kevelll
Alles klar...danke BlackJack! Dann werde ich mir mal ConfigObj ansehen!

Danke!

Re: ConfigParser - Werte richtig einlesen

Verfasst: Donnerstag 4. November 2010, 14:50
von DasIch
@BlackJack In Python 2.7 nutzt ConfigParser OrderedDicts.

Re: ConfigParser - Werte richtig einlesen

Verfasst: Donnerstag 4. November 2010, 15:07
von kevelll
Python-Doc:

Changed in version 2.7: The default dict_type is collections.OrderedDict. allow_no_value was added.



Das heißt ich sollte schnellsten mal update auf 2.7 machen! :wink: