os.environ
verhält sich wie ein Python-Wörterbuch, so dass alle üblichen Wörterbuchoperationen durchgeführt werden können. Zusätzlich zu den get
y set
Operationen, die in den anderen Antworten erwähnt wurden, können wir auch einfach prüfen, ob ein Schlüssel existiert. Die Schlüssel und Werte sollten gespeichert werden als Zeichenketten .
Python 3
In Python 3 verwenden Wörterbücher die in Schlüsselwort anstelle von hat_Schlüssel
>>> 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'
Es gibt einen wichtigen Punkt, der bei der Verwendung von os.environ
:
Obwohl Kindprozesse die Umgebung vom Elternprozess erben, bin ich kürzlich auf ein Problem gestoßen und habe herausgefunden, dass, wenn andere Skripte die Umgebung aktualisieren, während Ihr Python-Skript läuft, der Aufruf von os.environ
wieder spiegelt nicht die neuesten Werte wider .
Auszug aus dem docs :
Diese Zuordnung wird beim ersten Import des os-Moduls erfasst, normalerweise während des Python-Starts als Teil der Verarbeitung von site.py. Änderungen an der Umgebung, die nach diesem Zeitpunkt vorgenommen werden, werden nicht in os.environ widergespiegelt, mit Ausnahme von Änderungen, die durch direkte Modifikation von os.environ vorgenommen wurden.
os.environ.data
das alle Umgebungsvariablen speichert, ist ein dict-Objekt, das alle Umgebungswerte enthält:
>>> type(os.environ.data) # changed to _data since v3.2 (refer comment below)
<type 'dict'>
3 Stimmen
Verwandt: Wie kann ich von Python aus auf Umgebungsvariablen zugreifen?