it-swarm.com.de

Wie liest man Windows Umgebungsvariablen in Python?

Ich habe es versucht:

os.environ['MyVar']

Aber es hat nicht funktioniert! Gibt es eine Möglichkeit, die für alle Betriebssysteme geeignet ist?

16
Ahmad Soboh

Versuchen Sie es mit folgendem:

os.getenv('MyVar')

Aus der Dokumentation :

os.getenv (Variablenname [ Wert]) 

Gibt den Wert der Umgebungsvariablen varname zurück, falls vorhanden, oder den Wert, wenn er nicht vorhanden ist. Der Standardwert ist "Keine". 

Verfügbarkeit: Die meisten Varianten von Unix, Windows

Also nach dem Testen:

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

Ihre Methode würde auch funktionieren, wenn die Umgebungsvariable existiert. Der Unterschied zur Verwendung von os.getenv besteht darin, dass None (oder der angegebene Wert) zurückgegeben wird, während os.environ['MyValue'] eine KeyError-Ausnahme ausgibt, wenn die Variable nicht vorhanden ist.

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

Sie können es mit der obigen Codezeile testen. Es werden alle Pfade aufgelistet, die eingestellt sind.

Sie müssen möglicherweise Windows neu starten, um die Umgebungsvariable lesen zu können, die Sie über das Bedienfeld festgelegt haben.

0
Jim Smith