python实现全局配置和用户配置文件

一、文件目录格式

二、代码

1.conf.__init__.py

import importlib
import os

from conf import gsettings

class Settings(object):
    def __init__(self):
        #先加载全局配置
        for item in dir(gsettings):
            if item.isupper():
                k=item
                v=getattr(gsettings,k)
                #给对象设置键值对
                setattr(self,k,v)
        #加载用户settings
        setting_path=os.environ.get("SETTING")
        settings_module=importlib.import_module(setting_path)
        for s in dir(settings_module):
            if s.isupper():
                k=s
                v=getattr(settings_module,k)
                #给对象设置键值对
                setattr(self,k,v)


settings=Settings()

2.gsettings.py

NAME='from system settings'

3.settings.py

NAME="from customer settings"

4.start.py

import os,sys
BASE_DIR=os.path.dirname(__file__)
sys.path.append(BASE_DIR)

# 设置一个全局的键值对
os.environ.setdefault('SETTING','lib.settings')
from  conf import settings
print(settings.NAME)
原文地址:https://www.cnblogs.com/angelyan/p/11430387.html