Python 中的 os.getenv()

2024 年 8 月 29 日 | 阅读 3 分钟

os.getenv() 是一个 Python 函数,用于检索环境变量的值。环境变量 是存储在操作系统环境中的键值对,它是一组影响系统中运行进程行为的变量。环境变量的例子包括 PATH 变量,其中包含操作系统在查找可执行文件时搜索的目录列表,以及 HOME 变量,它存储当前用户主目录的路径。

os.getenv() 函数接受一个参数,即您要检索的环境变量的名称。如果找到该变量,函数将返回其值(字符串形式)。如果找不到该变量,函数将返回 None

以下是如何使用 os.getenv() 检索 HOME 环境变量 的示例:

输出

C:\Users\KATRAV~1\AppData\Local\Temp

在此示例中,调用 os.getenv() 函数,参数为 'TEMP',这是存储当前用户主目录路径的环境变量的名称。然后将 HOME 变量 的值赋给 home_dir 变量,并打印到控制台。

注意:如果您尝试检索不存在的环境变量的值,os.getenv() 将返回 None。

例如

输出

None

在此示例中,调用 os.getenv() 函数,参数为 'NONEXISTENT_VAR',它不是系统上任何环境变量的名称。因此,函数返回 None,该值被赋给 nonexistent_var 变量并打印到控制台。

除了接受单个参数外,os.getenv() 函数还有一个可选的第二个参数 default,可用于在找不到环境变量时提供默认值。

例如

输出

C:\Users\[<<>>]\AppData\Local\Programs\Eclipse Adoptium\jdk-17.0.3.7-hotspot\

环境变量通常在 Python 程序之外设置,要么在操作系统中,要么在运行程序的 shell 中。这意味着在 Python 程序中对环境变量所做的更改不是持久的,也不会影响系统中运行的其他进程。

例如

以下是如何使用 os.environ 字典在 Python 程序中设置环境变量的示例:

在此示例中,使用 os.environ 字典将 SOME_VAR 环境变量的值设置为 'some_value'

环境变量通常使用 大写 字母书写,用 下划线 分隔,并具有特定含义。Python 编程中使用的一些常见环境变量包括:

  • PATH - 操作系统在查找可执行文件时搜索的目录列表。
  • PYTHONPATH - Python 在查找要导入的模块时搜索的目录列表。
  • HOME - 当前用户主目录的路径。
  • LANG - 系统的默认语言设置。

关于 Python 中 os.getenv() 的其他一些要点:

  1. getenv() 函数只返回单个环境变量的值。如果您需要一次检索多个变量,可以使用 os.environ 字典。此字典包含所有环境变量及其值(作为键值对)。
  2. getenv() 函数是 区分大小写 的,这意味着它只匹配名称完全相同的环境变量。例如,如果您调用 os.getenv('SOME_VAR'),它将不会匹配名为 some_var 的环境变量。
  3. 如果您需要在 Python 程序中修改环境变量并使其更改持久化,可以使用 putenv() 函数。此函数接受两个参数:环境变量的 name 及其新 value。请记住,使用 os.putenv() 所做的更改仅在当前进程及其子进程中是持久的。
  4. 在检索包含敏感信息(如密码或 API 密钥)的环境变量时,务必安全地处理它们,以防止未经授权的访问。一种方法是使用 python-dotenv 这样的包,它允许您将敏感信息存储在单独的文件中,并在程序中将它们加载为环境变量。
  5. 某些操作系统处理环境变量的方式可能不同。例如,在 Windows 系统上,环境变量通常使用 %VAR_NAME% 语法访问,而不是类 Unix 系统中使用的 $VAR_NAME 语法。此外,某些系统可能具有与 Python 编程中常用变量不同的名称或含义的环境变量。