269

両方のアプローチに違いはありますか?

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

まったく同じ機能を持っているようです。

4

5 に答える 5

108

と の 1 つの違い (Python 2.7 と 3.8 で確認getenv()) environ[]:

  • os.getenv()例外を発生させませんが、None を返します
  • os.environ.get()同様に None を返します
  • os.environ[]環境変数が存在しない場合は例外を発生させます
于 2017-01-13T02:13:20.397 に答える
48

iPython を使用した Python 2.7 の場合:

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

os.getenvしたがって、 は単なる単純なラッパーであると結論付けることができますos.environ.get

于 2017-02-05T22:48:38.923 に答える