只想知道是否有任何适当的方法可以将多个配置文件加载到python脚本中。 目录结构如下。
dau
|-APPS
|---kafka
|---brokers
|-ENVS
如上所述,我的基本目录是dau。我打算将脚本保存在Kafka和Broker目录中。所有全局环境都以“ .ini”格式存储在ENVS目录中。我想将这些ini文件加载到所有脚本中而不一一添加,因为将来我们可能不得不添加更多环境文件,在这种情况下,我们不必在每个脚本中手动添加它们。>
env.ini示例
[DEV]
SERVER_NAME = dev123.abcd.net
我正在尝试使用以下链接的答案,但仍然必须手动添加它们,或者如果父路径在dau目录中发生更改,则必须编辑代码。
答案 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()
随意提供任何更简短的方法。