ConfigParser: Reihenfolge der sections erzwingen
Verfasst: Dienstag 5. März 2013, 16:27
Hallo Python-Forum,
Problembeschreibung:
================
Ich erzeuge ein Object von ConfigParser. Darin erzeuge ich sections und weise diesen options mit values zu. Beim Speichern in einer Datei bemerke ich, dass die gespeicherte Reihenfolge der sections nicht derjenigen entspricht, die ich vorgebe. Dieses Thema wurde im Forum bereits in folgenden zwei Beiträgen angerissen: Beitrag1, Beitrag2. Meine Frage ist nun: Gibt es beim Schreiben der Datei vielleicht doch einen Trick, wie ich die Reihenfolge der sections erzwingen kann?
Code-Beispiel:
================
Das führt zu folgender Ausgabe in der Datei:
Weiß jemand, ob ich die "richtige" Reihenfolge auf irgendeine Art erzwingen kann? Die Reihenfolge, die im Hintergrund in einem Dictionary gespeichert wird (hier "A", "C", "B" anstatt "A", "B", "C"), würde ich gerne vermeiden, da ich ein an einem bereits bestehenden Programm arbeite, in dem die Reihenfolge eine Rolle spielt.
Problembeschreibung:
================
Ich erzeuge ein Object von ConfigParser. Darin erzeuge ich sections und weise diesen options mit values zu. Beim Speichern in einer Datei bemerke ich, dass die gespeicherte Reihenfolge der sections nicht derjenigen entspricht, die ich vorgebe. Dieses Thema wurde im Forum bereits in folgenden zwei Beiträgen angerissen: Beitrag1, Beitrag2. Meine Frage ist nun: Gibt es beim Schreiben der Datei vielleicht doch einen Trick, wie ich die Reihenfolge der sections erzwingen kann?
Code-Beispiel:
================
Code: Alles auswählen
import ConfigParser, os
config = ConfigParser.ConfigParser() # create object of class ConfigParser
# ----------------------------------------------
config.add_section("A") # add section
config.add_section("B") # add section
config.add_section("C") # add section
# ----------------------------------------------
config.set("A", "OptionA", "ValueA") # add option and value to section
config.set("B", "OptionB", "ValueB") # add option and value to section
config.set("C", "OptionC", "ValueC") # add option and value to section
# ----------------------------------------------
with open('example.cfg', 'wb') as configfile: # write to file
config.write(configfile)
Code: Alles auswählen
[A]
optiona = ValueA
[C]
optionc = ValueC
[B]
optionb = ValueB