Skip to main content
Documents
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Get ENV (获取环境变量)

os.getenv()os.environ.get() 的主要区别在于错误处理:当环境变量不存在时,os.getenv() 默认返回 None 或用户指定的默认值,而 os.environ.get() 也会返回默认值,但 os.environ 直接访问(如 os.environ['KEY'])则会引发 KeyError 异常。因此,os.getenv() 更适合用于环境变量可能不存在的情况,而 os.environ 则适合在环境变量必须存在、不存在时应导致程序中断的场景。

详细对比

特性 os.getenv(key, default) os.environ.get(key, default) os.environ['KEY']
处理未找到的环境变量 返回 None 或指定的 default 值。 返回 None 或指定的 default 值。 抛出 KeyError 异常。
主要用途 当环境变量不一定存在,且程序需要提供默认值时使用。 与 os.getenv() 相同,用于安全地获取环境变量。 适用于环境变量必须存在,否则程序应异常终止的场景。
底层实现 os.getenv() 是 os.environ.get() 的一个封装。 os.environ 是一个字典,.get() 方法是字典标准方法。 直接对字典进行索引操作,没有错误处理机制。

示例

示例 1:处理不存在的环境变量

import os

# 假设MY_VARIABLE未设置
value1 = os.getenv('MY_VARIABLE')  # value1 的值为 None
value2 = os.getenv('MY_VARIABLE', 'default_value') # value2 的值为 'default_value'

print(value1)
print(value2)

示例 2:使用 os.environ

import os

# 假设MY_VARIABLE未设置
try:
    value = os.environ['MY_VARIABLE']
    print(value)
except KeyError:
    print("MY_VARIABLE is not set")

结论

选择哪种方法取决于你的具体需求:

如果需要一个安全获取环境变量的方式,并在环境变量缺失时提供一个默认值,使用 os.getenv() 或 os.environ.get()。两者功能相同,但 os.getenv() 通常更简洁易读。

如果你的代码要求环境变量必须存在,否则就应该报错中断,使用 os.environ['KEY'],并让程序捕获 KeyError 异常。