os.environ
ведет себя как словарь python, поэтому можно выполнять все общие операции словаря. В дополнение к операциям get
и set
, упомянутым в других ответах, мы также можем просто проверить, существует ли ключ:
>>> import os
>>> os.environ.has_key('HOME') # Check an existing env. variable
True
>>> os.environ.has_key('FOO') # Check for a non existing variable
False
>>> os.environ['FOO'] = '1' # Set a new env. variable (String value)
>>> os.environ.has_key('FOO')
True
>>> os.environ.get('FOO') # Retrieve the value
'1'
Следует отметить, что следует отметить использование os.environ
:
Хотя дочерние процессы наследуют среду от родительского процесса, я недавно столкнулся с проблемой и выяснил, есть ли у вас другие скрипты, обновляющие среду, в то время как ваш скрипт python запущен, снова вызывая os.environ
не будет отражать последние значения.
Выдержка из docs :
Это сопоставление выполняется при первом входе в модуль os, обычно во время запуска Python как часть обработки site.py. Изменения в окружающей среде, сделанные после этого времени, не отражаются в os.environ, за исключением изменений, внесенных путем изменения os.environ напрямую.
blockquote>
os.environ.data
, который хранит все переменные среды, является dict, который содержит все значения среды:>>> type(os.environ.data) # changed to _data since v3.2 (refer comment below)