os.environ
se comporta como um dicionário python, para que todas as operações comuns do dicionário possam ser executadas. Além das operações get
e set
mencionadas nas outras respostas, também podemos simplesmente verificar se existe uma chave. As chaves e os valores devem ser armazenados como seqüências de caracteres .
Python 3
Para python 3, os dicionários usam a palavra-chave in em vez de has_key
>>> import os
>>> 'HOME' in os.environ # Check an existing env. variable
True
...
Python 2
>>> 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'
Há uma coisa importante a ser observada sobre o uso os.environ
:
Embora os processos filhos herdem o ambiente do processo pai, eu deparei com um problema recentemente e descobri que, se você tiver outros scripts atualizando o ambiente enquanto o script python estiver em execução, a chamada os.environ
novamente não refletirá os valores mais recentes .
Trecho dos documentos :
Esse mapeamento é capturado na primeira vez que o módulo os é importado, normalmente durante a inicialização do Python como parte do processamento do site.py. Alterações no ambiente feitas após esse período não são refletidas no os.environ, exceto as alterações feitas pela modificação direta do os.environ.
os.environ.data
que armazena todas as variáveis de ambiente, é um objeto dict, que contém todos os valores do ambiente:
>>> type(os.environ.data) # changed to _data since v3.2 (refer comment below)
<type 'dict'>