python - 在python中获取以特定前缀开头的所有环境变量的最佳方法
问题描述
我想获取以特定前缀开头的所有环境变量并将它们(不带前缀)保存到字典中。有没有比获取所有os.environ
变量并搜索它们更好的方法?我还需要将它们与配置文件合并,因此,如果您知道 python 中的任何库,就像 Go 中的 Viper(它处理环境变量和配置文件并优先合并它们),这将是一个巨大的帮助。
更新:
我的配置不是简单的应用程序配置,它们是用户配置,其中包含一些结构,所以它不是一个简单的键值对。它也可能采用不同的格式,例如 YAML、INI、JSON 等。
解决方案
我不知道任何其他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库:文档
推荐阅读
- html - 当元素在另一个元素中时,CSS位置粘性无法正常工作
- c++ - 使用包含回调的 SWIG GO 和 C++ 包装器创建共享库时出现问题
- javascript - 如何在 Chart.js 的图表中显示数据标签?
- php - 在 Composer 错误中找不到 Symfony AbstractController
- bash - 将 UNIX shell 变量与相邻字符分开
- javascript - 反应图像加载不一致,已安装文件上的图像
- c++ - 了解 For 循环的每个元素的循环数
- string - 导入 PowerShell 时从 csv 列中删除非数字字符
- c# - 如何使用带有 NEST for Elastic 的自定义类型字段批量删除文档?
- c - c - 数组中的公牛和奶牛