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 -- http://mail.python.org/mailman/listinfo/python-list