python读取环境变量

📅 2026/8/25 10:34:05
python读取环境变量
这里提供一段代码用于初始化变量。该变量不是来自脚本内部定义或调用 Python 脚本时传入的参数而是来源于系统环境变量常见于构建流水线中构建机的环境设置。以下是代码示例dataclass class StartupVars: BRANCH_TAG: str 0DefaultBranch APP_VERSION: str 0.0.0.0 RES_VERSION: str 0.0.0.1 BUILD_TARGET: str Unknown PIPELINE_TAG: str Unknown CONFIG_SUFFIX: str BK_CI_PIPELINE_ID: str p-xxx BK_CI_BUILD_ID: str b-xxx BK_CI_BUILD_NUM: str 000 BK_CI_BUILD_TASK_ID: str t-xxx BK_CI_PARENT_PIPELINE_ID: str BK_CI_PARENT_BUILD_ID: str EXCEL_CONF_KEY: str PROJECT_NAME: str myGame def init_startup_vars(): # pragma keys [field.name for field in fields(StartupVars)] selected_env_vars {k: os.environ[k] for k in keys if k in os.environ} global startup_vars startup_vars StartupVars(**selected_env_vars)我们来分析下init_startup_vars函数keys [field.name for field in fields(StartupVars)]这里使用dataclasses.fields()函数获取StartupVars数据类的所有字段提取字段名称列表如[BRANCH_TAG, APP_VERSION, BUILD_TARGET, ...]selected_env_vars {k: os.environ[k] for k in keys if k in os.environ}遍历所有StartupVars字段名只选择那些在系统环境变量中存在的字段并创建包含有效环境变量的字典。想要的变量已经存入了selected_env_varsglobal startup_vars startup_vars StartupVars(**selected_env_vars)这里声明全局变量startup_vars使用筛选后的环境变量字典创建StartupVars实例未在环境变量中设置的字段将使用StartupVars类中定义的默认值StartupVars数据类结构如上面的代码使用数据类确保类型安全所有字段都有明确的类型注解和默认值有效避免运行时类型错误后面使用这些参数直接这样访问# 在任何需要的地方访问启动配置 branch startup_vars.BRANCH_TAG version startup_vars.APP_VERSION或者有些情况下转为字典后通过字符串访问def startup_vars_dict(): return asdict(startup_vars) startupVarsDict startup_vars_dict() startupVarsDict[BRANCH_TAG]