os.environ
zachowuje się jak słownik Pythona, więc można wykonywać wszystkie typowe operacje słownikowe. Oprócz operacji get
i set
wymienionych w innych odpowiedziach możemy również po prostu sprawdzić, czy istnieje klucz. Klucze i wartości powinny być przechowywane jako ciągi znaków .
Python 3
W Pythonie 3 słowniki używają słowa kluczowego in zamiast 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'
Należy pamiętać o jednej ważnej rzeczy os.environ
:
Chociaż procesy potomne dziedziczą środowisko po procesie nadrzędnym, niedawno natknąłem się na problem i zorientowałem się, że jeśli inne skrypty aktualizują środowisko podczas działania skryptu python, wywołanie os.environ
ponownie nie będzie odzwierciedlało najnowszych wartości .
Fragment dokumentów :
To odwzorowanie jest przechwytywane przy pierwszym imporcie modułu os, zazwyczaj podczas uruchamiania Pythona w ramach przetwarzania site.py. Zmiany w środowisku wprowadzone po tym czasie nie są odzwierciedlane w os.environ, z wyjątkiem zmian dokonanych przez bezpośrednią modyfikację os.environ.
os.environ.data
który przechowuje wszystkie zmienne środowiskowe, jest obiektem dict, który zawiera wszystkie wartości środowiskowe:
>>> type(os.environ.data) # changed to _data since v3.2 (refer comment below)
<type 'dict'>