36

我试过这个:

os.environ['MyVar']

但它没有用!有没有适合所有操作系统的方法?

4

3 回答 3

60

尝试使用以下内容:

os.getenv('MyVar')

文档中:

os.getenv(varname[, value])

如果存在则返回环境变量 varname 的值,如果不存在则返回值。值默认为无。

可用性:大多数版本的 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    

如果环境变量存在,您的方法也可以工作。using 的区别os.getenv在于它返回None(或给定的值),而os.environ['MyValue']当变量不存在时会给出 KeyError 异常。

于 2012-05-08T10:24:24.187 回答
18

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

于 2014-06-05T12:59:26.540 回答
5
os.getenv('PATH')

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

于 2012-05-08T10:54:18.493 回答