How can I set default values for SafeConfigParser?
Use the defaults
parameter to the constructor:
# class ConfigParser.SafeConfigParser([defaults[, dict_type]]) #config = ConfigParser.SafeConfigParser({'nothingThere': 'lalalalala'})......# If the job section has no "nothingThere", "lalalalala" will be returned# config.get(jobSection, 'nothingThere')
You can also use a default ".ini" file and read it before your actual config file.
default.ini:
[job1]mailto=jacklogfile=default.log[job2]mailto=johnlogfile=default.log
config.ini:
[job1]mailto=sparrowlogfile=blah.log[job2]logfile=blah2.log
parsing:
config = ConfigParser.SafeConfigParser()config.read('default.ini')config.read('config.ini')print config.get('job1', 'mailto')# -> sparrow (from config.ini)print config.get('job1', 'logfile')# -> blah.log (from config.ini)print config.get('job2', 'mailto')# -> john (from default.ini)print config.get('job2', 'logfile')# -> blah2.log (from config.ini)
In Python 3 you can provide a fallback value to the get() method as follows:
values['nothingThere'] = config.get('job', 'nothingThere', fallback=0)print(values['nothingThere'])# -> 0