如何以火热的方式加载所有配置文件?

时间:2018-08-23 09:17:31

标签: linux python-2.7

只想知道是否有任何适当的方法可以将多个配置文件加载到python脚本中。 目录结构如下。

 dau
   |-APPS
   |---kafka
   |---brokers
   |-ENVS

如上所述,我的基本目录是dau。我打算将脚本保存在Kafka和Broker目录中。所有全局环境都以“ .ini”格式存储在ENVS目录中。我想将这些ini文件加载到所有脚本中而不一一添加,因为将来我们可能不得不添加更多环境文件,在这种情况下,我们不必在每个脚本中手动添加它们。

env.ini示例

[DEV]
SERVER_NAME = dev123.abcd.net

我正在尝试使用以下链接的答案,但仍然必须手动添加它们,或者如果父路径在dau目录中发生更改,则必须编辑代码。

Stack-flow-answer

1 个答案:

答案 0 :(得分:0)

嗨,我想出了以下解决方案,感谢您的支持。

下面的代码将获取所有.ini文件作为列表并返回。

import os

def All_env_files():
    try:
        BASE_PATH = os.path.abspath(os.path.join(__file__,"../.."))

        ENV_INI_FILES = [os.path.join(BASE_PATH + '/ENVS/',each) for each in os.listdir(BASE_PATH + '/ENVS') if each.endswith('.ini')]

        return ENV_INI_FILES
    except ValueError:
        raise ValueError('Issue with Gathering Files from ENVS Directory')

下面的代码将获取列表ini文件,并将其提供给ConfigParser。

import ConfigParser, sys , os
"""
This is for kafka broker status check 
"""
#Get Base path
Base_PATH = os.path.abspath(os.path.join(__file__,"../../.."))
sys.path.insert(0, Base_PATH)
#Importing configs python file on ../Configs.py
import Configs, edpCMD

#Taking All the ENVS ini file as list
List_ENVS = Configs.All_env_files()

随意提供任何更简短的方法。