【问题标题】:Best way to get all environment variables starting with specific prefix in python在python中获取以特定前缀开头的所有环境变量的最佳方法
【发布时间】:2021-01-16 05:49:38
【问题描述】:

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

更新:

我的配置不是简单的应用配置,它们是用户配置,里面有一些结构,所以它不是一个简单的键值对。它也可能是不同的格式,例如 YAML、INI、JSON 等。

【问题讨论】:

  • 我想你必须搜索os.environ。它可以在一行中完成:{key.replace(...): val for key, val in os.environ.items() if key.startswith(...)}

标签: python configuration environment-variables


【解决方案1】:

我不知道使用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库:documentation

【讨论】:

    猜你喜欢
    • 2013-08-31
    • 2015-03-23
    • 2021-10-12
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    相关资源
    最近更新 更多