0

我有一个配置文件,我想通过输入部分和选项名称来动态加载选项。

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

[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')

编辑:问题是这是否是pythonic ==正确的方法。

4

1 回答 1

4

配置文件

;# if not applicable leave it blank

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

配置解析.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()

这应该可以解决问题...

于 2011-10-04T12:50:25.947 回答