it-swarm.com.ru

Как прочитать значение переменной среды Windows в Python?

Я попробовал это:

os.environ['MyVar']

Но это не сработало! Есть ли способ, подходящий для всех операционных систем?

16
Ahmad Soboh

Попробуйте использовать следующее:

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    

Ваш метод тоже будет работать, если существует переменная среды. Разница с использованием os.getenv состоит в том, что он возвращает None (или заданное значение), тогда как os.environ['MyValue'] выдает исключение KeyError, когда переменная не существует.

40
Niek de Klein
os.getenv('PATH')

Вы можете проверить это с помощью приведенной выше строки кода. В нем будут перечислены все пути, которые установлены.

3

Возможно, вам придется перезапустить окна, чтобы иметь возможность прочитать переменную среды, заданную вами через панель управления.

0
Jim Smith