如何在python中读取windows环境变量值?

Ahm*_*boh 23 python environment-variables

我试过这个:

os.environ['MyVar']
Run Code Online (Sandbox Code Playgroud)

但它不起作用!有什么方法适合所有操作系统吗?

Nie*_*ein 43

尝试使用以下内容:

os.getenv('MyVar')
Run Code Online (Sandbox Code Playgroud)

文档:

os.getenv(varname [,value])

返回环境变量varname的值(如果存在),如果不存在,则返回值.value默认为None.

可用性:Unix,Windows的大多数风格

所以在测试之后:

>>> import os
>>> os.environ['MyVar'] = 'Hello World!'       # set the environment variable 'MyVar' to contain 'Hello World!'
>>> print os.getenv('MyVar')
Hello World!
>>> print os.getenv('not_existing_variable')
None
>>> print os.getenv('not_existing_variable', 'that variable does not exist')
that variable does not exist
>>> print os.environ['MyVar']
Hello World!
>>> print os.environ['not_existing_variable']
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib/python2.4/UserDict.py", line 17, in __getitem__
    def __getitem__(self, key): return self.data[key]
KeyError: 'not_existing_variable    
Run Code Online (Sandbox Code Playgroud)

如果环境变量存在,您的方法也会起作用.与using的不同之os.getenv处在于它返回None(或给定值),而os.environ['MyValue']在变量不存在时给出KeyError异常.


Jim*_*ith 14

您可能必须重新启动 Windows 才能读取您通过控制面板设置的环境变量。

  • 或者只是重新启动控制台。 (14认同)
  • 必须重新启动机器,重新启动控制台并没有减少它+1 (2认同)

Siv*_*lam 6

os.getenv('PATH')
Run Code Online (Sandbox Code Playgroud)

您可以使用上面的代码行进行测试。它将列出所有设置的路径。