.ini file parser (ConfigParser)

Ian Bicking ianb at colorstudy.com
Fri Oct 22 06:29:49 CEST 2004


I've written a simple parser for .ini files; it's not a replacement for 
ConfigParser, but you could build such a module ontop of it fairly 
easily, or you could build something either more or less complicated.

svn://colorstudy.com/home/ianb/config/
http://colorstudy.com/cgi-bin/viewcvs.cgi/home/ianb/config/

For instance, here's the code to parse an ini file into a nested 
dictionary, like {'section': {'var1': ['value1']}}:


class BasicParser(INIParser):

     def __init__(self):
         self.data = {}

     def assignment(self, name, content):
         if not self.section:
             self.parse_error(
                 'Assignments can only occur inside sections; no '
                 'section has been defined yet')
         section = self.data.setdefault(self.section, {})
         section.setdefault(name, []).append(content)

usage:

p = BasicParser()
p.feed('config.ini')
data = p.data

... though generally the parser should be a non-public implementation 
detail in a config library.  Anyway, not a lot of code, but I think it's 
a good piece for building different config parsers. both simple and complex.

-- 
Ian Bicking  /  ianb at colorstudy.com  / http://blog.ianbicking.org



More information about the Python-list mailing list