![](https://img.haomeiwen.com/i17035812/91e15e8e012f227c.png)
这次用的是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)
网友评论