python解析config配置文件的2种方法

作者: chengcxy | 来源:发表于2018-01-07 23:51 被阅读598次

    工作中代码测试的流程一般是先在测试环境运行,测试稳定通过以后,再将代码放到生产环境进行调度,这时候就需要将数据库链接更换一下,如果每次都这样改动,岂不是太麻烦了,如果从面向对象的角度去考虑,我们将代码从测试扔到生产也不用改动(或者改动很小)就会帮我们省掉很多事情,需要做什么,无非就是将数据库的链接密码替换,config配置这时候就来帮我们做这件事.

    在测试环境里设置一个config,里面是测试数据库链接,我们后面代码链接数据库就是通过读取配置文件去自动链接,同时我们将配置文件拷贝到生产环境,将链接替换掉,那么我们代码就不用去修改,直接上传就好了.

    一.configparser模块

    config文件有的是config.ini这样的,解析这个文件python3版本以上也有相应的包 configparser去解析,下面是文件截图和解析代码 config.ini

    解析代码:

    import configparser
    
    Config = configparser.ConfigParser()
    Config.read("config.ini")
    data = Config.sections()
    print(data)
    db_host = Config.get("db", "db_host")
    print(db_host)
    
    result

    二.yaml模块

    第二种config文件是config.yaml,用到的是YAML语言,它是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。 yaml介绍
    comfig.yaml
    import os
    import yaml
    config_file = os.path.dirname(os.path.realpath(__file__)) + '/config.yaml'
    configs = yaml.load(open(config_file,'r'))
    conns = configs.get('mysql.config')['conn']
    for k,v in conns.items():
        print(k,'====:',v)
    
    yaml result

    为了方便调用,将其封装一下

    import os
    import yaml
    
    class ConfigParser(object):
    
        config_file = os.path.dirname(os.path.realpath(__file__)) + '/config.yaml'
        configs = yaml.load(open(config_file,'r'))
        @classmethod
        def get(cls, server='mysql.config',key=None):
            if not cls.configs:
                cls.configs = yaml.load(open(cls.config_file, 'r'))
            section = cls.configs.get(server, None)
            if section is None:
                raise NotImplementedError
            value = section.get(key, None)
            if value is None:
                    raise NotImplementedError
            return value
    
    if __name__ == '__main__':
        configs = ConfigParser()
        mysql_conn = configs.get(key='conn')
        print(mysql_conn)
    
    

    三.说明

    文章转载自个人微信公众号pythonfan,接入了图灵机器人,图片 语音 都支持回复...
    转载文章请备注来源!


    微信公众号:pythonfan

    相关文章

      网友评论

      本文标题:python解析config配置文件的2种方法

      本文链接:https://www.haomeiwen.com/subject/qqkvnxtx.html