Normally, I code as follows for getting a particular item in a variable as follows
try:
config = ConfigParser.ConfigParser()
config.read(self.iniPathName)
except ConfigParser.MissingSectionHeaderError, e:
raise WrongIniFormatError(`e`)
try:
self.makeDB = config.get("DB","makeDB")
except ConfigParser.NoOptionError:
self.makeDB = 0
Is there any way to read all the contents in a python dictionary?
For example
[A] x=1 y=2 z=3 [B] x=1 y=2 z=3
is written into
val["A"]["x"] = 1 ... val["B"]["z"] = 3
I suggest subclassing
ConfigParser.ConfigParser(orSafeConfigParser, &c) to safely access the “protected” attributes (names starting with single underscore — “private” would be names starting with two underscores, not to be accessed even in subclasses…):This emulates the usual logic of config parsers, and is guaranteed to work in all versions of Python where there’s a
ConfigParser.pymodule (up to 2.7, which is the last of the2.*series — knowing that there will be no future Python 2.any versions is how compatibility can be guaranteed;-).If you need to support future Python
3.*versions (up to 3.1 and probably the soon forthcoming 3.2 it should be fine, just renaming the module to all-lowercaseconfigparserinstead of course) it may need some attention/tweaks a few years down the road, but I wouldn’t expect anything major.