How can I set default values for SafeConfigParser? How can I set default values for SafeConfigParser? python python

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