Я бы использовал модуль ConfigParser , который выдает довольно читаемый и редактируемый пользователем вывод для вашего примера:
[bob]
colour_scheme: blue
british: yes
[joe]
color_scheme: that's 'color', silly!
british: no
Следующий код создаст указанный выше файл конфигурации и распечатает его:
import sys
from ConfigParser import *
c = ConfigParser()
c.add_section("bob")
c.set("bob", "colour_scheme", "blue")
c.set("bob", "british", str(True))
c.add_section("joe")
c.set("joe", "color_scheme", "that's 'color', silly!")
c.set("joe", "british", str(False))
c.write(sys.stdout) # this outputs the configuration to stdout
# you could put a file-handle here instead
for section in c.sections(): # this is how you read the options back in
print section
for option in c.options(section):
print "\t", option, "=", c.get(section, option)
print c.get("bob", "british") # To access the "british" attribute for bob directly
Обратите внимание, что ConfigParser поддерживает только строки, поэтому вам придется конвертировать, как я выше, для логических значений. См. effbot для ознакомления с основами.