On Feb 14, 6:10 pm, aspineux <aspin...@gmail.com> wrote: > On 14 fév, 06:47, Wang Coeus <wangco...@gmail.com> wrote: > > > Hi all, > > I am new to python. Currently I encountered a problem, please help me to > > solve this. Thanks in advance! > > I have a file like below: > > ConfigParser Library does exacly what you want but with .ini file > format > [block1] > key1=value1 > key2=value2 > ... > > Can you change the format of your file ? If so > > import ConfigParser > config=ConfigParser.RawConfigParser(config_default) > try: > config.readfp(open(filename, 'r')) > except Exception, e: > logging.error('error reading configuration file %s: %s', filename, > e) > sys.exit(1) > > def func(config, key1): > result={} > for section in config.sections(): > if config.has_option(section, key1): > result[section]=config.get(section, key1) > return result > > If not, you need to parse youre file, and the some question : > How or what generate this file, is it always the same format ? Could > it chnage, for exemple for > > block1 { key1=value1 key2=value2 } > > or at least > > block1 { > > key1=value1 > key2=value2 > > } > > Is-it big, too big to keep in memory ? > > > > > ++++++++++++++++++++++++++++++++++++++ > > block1 > > { > > key1=value1 > > key2=value2 > > key3=value3} > > > block2 > > { > > key1=value4 > > key2=value5 > > key4=value6} > > > ... > > blockn > > { > > key1=value7 > > key2=value8 > > keyn=valuen} > > > +++++++++++++++++++++++++++++++++++++++ > > Different block may have different keys and even same key in different > > blocks may have different values. > > > Now I want to get a function, which like this: > > func(key) > > and it will return a dictionary as below: > > func(key1) = [block1:value1,block2:value4,...,blockn:value7] > > and if one block has no "key1" parameter, it will not include in this > > dict. > > > Thanks a lot! > > -- > > Coeus > > In the middle of every difficulty lies opportunity. > > -- Albert Einstein
configobj is even better, very similar usage. -- http://mail.python.org/mailman/listinfo/python-list