2012-05-08 10 views
13

yo probamos este:¿Cómo se puede leer el valor de la variable de entorno de Windows en python?

os.environ['MyVar'] 

Pero no funcionó! ¿Hay alguna manera adecuada para todos los sistemas operativos?

+0

Recibí este error: KeyError: 'MyVar' –

+1

¿Estás seguro de que has definido la variable de manera correcta? – Alexander

+1

¿Cómo definirlo? Lo he agregado en el Panel de control-> Sistema y seguridad-> Sistema-> Configuración del sistema avanzado-> Variables ambientales –

Respuesta

30

intente utilizar el siguiente:

os.getenv('MyVar') 

Desde el documentation:

os.getenv(varname[, value])

Return the value of the environment variable varname if it exists, or value if it doesn’t. value defaults to None.

Availability: most flavors of Unix, Windows

Así que después de probarlo:

>>> 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  

Su método funcionaría también si existe la variable ambiental. La diferencia con el uso de os.getenv es que devuelve None (o el valor proporcionado), mientras que os.environ['MyValue'] da una excepción KeyError cuando la variable no existe.

2
os.getenv('PATH') 

Puede probarlo con la línea de código anterior. Enumerará todas las rutas que están establecidas.

0

Es posible que tenga que reiniciar Windows para poder leer la variable de entorno que estableció a través del panel de control.

+5

O simplemente reiniciando la consola. –

Cuestiones relacionadas