web-dev-qa-db-fra.com

Comment lire la valeur de la variable d'environnement Windows en python?

J'ai essayé ceci:

os.environ['MyVar']

Mais cela n'a pas fonctionné! Existe-t-il un moyen adapté à tous les systèmes d'exploitation?

16
Ahmad Soboh

Essayez d'utiliser ce qui suit:

os.getenv('MyVar')

De la documentation :

os.getenv (nomvar [ valeur]) 

Renvoie la valeur de la variable d'environnement varname si elle existe, ou la valeur si ce n'est pas le cas. La valeur par défaut est Aucune. 

Disponibilité: la plupart des versions d'Unix, Windows

Donc après l'avoir testé:

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

Votre méthode fonctionnerait aussi si la variable environnementale existait. La différence avec os.getenv est qu'il renvoie None (ou la valeur donnée), alors que os.environ['MyValue'] donne une exception KeyError lorsque la variable n'existe pas.

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

Vous pouvez le tester avec la ligne de code ci-dessus. Il listera tous les chemins qui sont définis.

Vous devrez peut-être redémarrer Windows pour pouvoir lire la variable d'environnement que vous avez définie via le panneau de configuration.

0
Jim Smith