Différence entre les os.la fonction getenv et les os.environ.obtenir?
quelle Est la différence entre ces deux? Quand dois-je utiliser l'un plutôt que l'autre? Est l'un de ces obsolète? Ils semblent avoir exactement les mêmes fonctionnalités.
>>> os.getenv('TERM')
'xterm'
>>> os.environ.get('TERM')
'xterm'
>>> os.getenv('FOOBAR', "not found") == "not found"
True
>>> os.environ.get('FOOBAR', "not found") == "not found"
True
3 réponses
une différence observée (Python27):
os.environ
soulève une exception si la variable environnementale n'existe pas.
os.getenv
ne déclenche pas une exception, mais renvoie None
voir ce fil apparenté . Fondamentalement, os.environ
se trouve à l'importation, et os.getenv
est une enveloppe à os.environ.get
, au moins en CPython.
EDIT: pour répondre à un commentaire, dans CPython, os.getenv
est fondamentalement un raccourci à os.environ.get
; depuis os.environ
est chargé à l'importation de os
, et seulement alors, la même chose vaut pour
os.getenv
.
en Python 2.7 avec iPython:
>>> import os
>>> os.getenv??
Signature: os.getenv(key, default=None)
Source:
def getenv(key, default=None):
"""Get an environment variable, return None if it doesn't exist.
The optional second argument can specify an alternate default."""
return environ.get(key, default)
File: ~/venv/lib/python2.7/os.py
Type: function
donc nous pouvons conclure que os.getenv
est juste un simple enveloppement autour de os.environ.get
.