美文网首页
python3--配置文件优化

python3--配置文件优化

作者: w_dll | 来源:发表于2022-03-01 22:43 被阅读0次

这次用的是python自带的配置解析库
简单的测了下 能满足需求 主要是跨文件的全局变量
以及初始化的时候全局变量的读取

主函数

# main.py
import conf.config as conf
import models.models as models

def main():
    conf.init()
    models.conn()

if __name__ == '__main__':
    main()

配置初始化

# config.py
import configparser
import argparse
import sys
import os

def init():
    global config_name
    parser = argparse.ArgumentParser()
    default_conf = os.path.join('conf', 'config.ini')
    parser.add_argument("-f", "--file", help="配置文件", default=default_conf, type=str)
    args = parser.parse_args()
    config_name = args.file
    # 读取mysql的配置 设置全局变量
    set_mysql_config(config_name)

# 读取初始化后的全局变量
def get_config_file_name():
    return config_name

def get_mysql_config():
    return mysql_cfg

# 解析配置文件
def read_config_file(config_name):
    conf = configparser.ConfigParser()
    # print(type(conf))   #conf是类
    # config_name = 'config.ini'
    conf.read(config_name)
    return conf

# 解析配置如果出错直接退出了
def set_mysql_config(config_name):
    global mysql_cfg
    key = 'mysql'
    try:
        config_info = read_config_file(config_name)
        mysql_cfg = {
            'host': config_info.get(key, 'host'),
            'port': config_info.get(key, 'port'),
            'user': config_info.get(key, 'user'),
            'pass': config_info.get(key, 'pass'),
            'db': config_info.get(key, 'db'),
        }
    except Exception as e:
        print(e)
        sys.exit(1)

调用测试

# import pymysql
import conf.config as config

def conn():
    mysql_cfg = config.get_mysql_config()
    print(mysql_cfg)

相关文章

网友评论

      本文标题:python3--配置文件优化

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