2011-10-04 40 views
0

我有一个配置文件,我想通过输入部分和选项名称加载选项dynamicaly。Python的ConfigParser包装

例如,这是配置文件的内容。

[templates] 
path = /full/path/to/template 

和config.py文件

class Config(object): 
    def __init__(self): 
     self.config = ConfigParser.ConfigParser() 
     self.config.read('config.ini') 

     for section in self.config.sections(): 
      self.__dict__[section] = dict() 
      for k, v in self.config.items(section): 
       self.__dict__[section][k] = v 


    def from_options(self, section, option): 
     if section in self.__dict__: 
      if option in self.__dict__[section]: 
       return self.__dict__[section][option] 

if __name__ == '__main__': 
    c = Config() 
    print c.from_options('templates', 'path') 

编辑: 的问题是,如果这是一个Python的==正确的方式去做。

+1

什么是你的问题/问题? – agf

回答

4

config.py

;# if not applicable leave it blank 

[templates] 
path = /full/path/to/template 

configparse.py

class Config(object): 
    def __init__(self): 
     self.config = ConfigParser.ConfigParser() 
     self.config.read('config.py') 

    def get_path(self): 
     return self.config.get('templates', 'path') 

if __name__ == '__main__': 
    c = Config() 
    print c.get_path() 

这应该做的伎俩......