首页 > 解决方案 > 在python中获取以特定前缀开头的所有环境变量的最佳方法

问题描述

我想获取以特定前缀开头的所有环境变量并将它们(不带前缀)保存到字典中。有没有比获取所有os.environ变量并搜索它们更好的方法?我还需要将它们与配置文件合并,因此,如果您知道 python 中的任何库,就像 Go 中的 Viper(它处理环境变量和配置文件并优先合并它们),这将是一个巨大的帮助。

更新:

我的配置不是简单的应用程序配置,它们是用户配置,其中包含一些结构,所以它不是一个简单的键值对。它也可能采用不同的格式,例如 YAML、INI、JSON 等。

标签: pythonconfigurationenvironment-variables

解决方案


我不知道任何其他os.environ用于加载环境变量并循环访问它们的解决方案。它看起来像:

import os
import re

# Replace PREF by the prefix you want
prefix="PREF"
myPattern = re.compile(r'{prefix}\w+'.format(prefix=prefix))
my_env_variables = {key.replace(prefix,''):val for key, val in os.environ.items() if myPattern.match(key)}

print(my_env_variables)

关于配置文件管理,我强烈推荐python-dotenv库:文档


推荐阅读