import ConfigParser import os import sys import atexit class MyConfigParser(ConfigParser.RawConfigParser): def set(self, section, option, value): if not isinstance(value, basestring): value = str(value) ConfigParser.RawConfigParser.set(self, section, option, value) if hasattr(sys, "frozen") and sys.frozen == "windows_exe": configdir = os.path.dirname(os.path.abspath(sys.executable)) else: configdir = os.path.dirname(os.path.abspath(__file__)) configfile = os.path.join(configdir, 'config.ini') defaults = { 'basedir': configdir, 'dbfile': os.path.join(configdir, "sikavalvonta.db"), 'backupdir': os.path.join(configdir, "backups"), 'keepbackups': 30 } parser = MyConfigParser(defaults) # More defaults parser.add_section('GUI') parser.set('GUI', 'graph_avgs_section', True) parser.set('GUI', 'graph_avgs_group', True) parser.read(configfile) def saveconfig(): parser.write(open(configfile, 'w')) atexit.register(saveconfig)