os.environ
si comporta come un dizionario Python, quindi è possibile eseguire tutte le operazioni di dizionario comuni. Oltre alle operazioni get
e set
menzionate nelle altre risposte, possiamo anche semplicemente controllare se esiste una chiave. Le chiavi e i valori devono essere memorizzati come stringhe .
Python 3
Per Python 3, dizionari di utilizzare la a parola chiave, invece di 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'
C'è una cosa importante da notare sull'uso os.environ
:
Sebbene i processi figlio ereditino l'ambiente dal processo padre, di recente ho riscontrato un problema e ho capito, se hai altri script che aggiornano l'ambiente mentre il tuo script Python è in esecuzione, la chiamata di os.environ
nuovo non rifletterà i valori più recenti .
Estratto dai documenti :
Questa mappatura viene acquisita la prima volta che il modulo os viene importato, in genere durante l'avvio di Python come parte dell'elaborazione di site.py. Le modifiche all'ambiente apportate dopo questo periodo non si riflettono in os.environ, ad eccezione delle modifiche apportate modificando direttamente os.environ.
os.environ.data
che memorizza tutte le variabili di ambiente, è un oggetto dict, che contiene tutti i valori di ambiente:
>>> type(os.environ.data) # changed to _data since v3.2 (refer comment below)
<type 'dict'>