os.environ
se comporta como un diccionario de python, por lo que se pueden realizar todas las operaciones comunes del diccionario. Además de las operaciones get
y set
mencionadas en las otras respuestas, también podemos simplemente verificar si existe una clave. Las claves y los valores deben almacenarse como cadenas .
Python 3
Para python 3, los diccionarios usan la palabra clave in en lugar 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'
Hay una cosa importante a tener en cuenta sobre el uso os.environ
:
Aunque los procesos secundarios heredan el entorno del proceso principal, me encontré con un problema recientemente y descubrí que si tiene otras secuencias de comandos que actualizan el entorno mientras se ejecuta su secuencia de comandos de Python, os.environ
volver a llamar no reflejará los últimos valores .
Extracto de los documentos :
Esta asignación se captura la primera vez que se importa el módulo os, generalmente durante el inicio de Python como parte del procesamiento site.py. Los cambios en el entorno realizados después de este tiempo no se reflejan en os.environ, excepto los cambios realizados modificando os.environ directamente.
os.environ.data
que almacena todas las variables de entorno, es un objeto dict, que contiene todos los valores del entorno:
>>> type(os.environ.data) # changed to _data since v3.2 (refer comment below)
<type 'dict'>