Разница между ОС.getenv и os.окружающая среда.получить?
есть ли вообще разница между этими двумя? Когда я должен использовать один над другим? Один из них устарел? Они, кажется, имеют точно такую же функциональность.
>>> 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 ответа:
одно различие наблюдается (Python27):
os.environ
вызывает исключение, если переменная среды не существует.os.getenv
не вызывает исключение, но возвращает none
посмотреть это связано потока. В принципе,
os.environ
находится на импорте, иos.getenv
- Это оболочка дляos.environ.get
, по крайней мере в CPython.EDIT: чтобы ответить на комментарий, в CPython,
os.getenv
это в основном ярлык дляos.environ.get
; Сos.environ
загружается при импортеos
, и только тогда, то же самое относится кos.getenv
.
в Python 2.7 с 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
таким образом, мы можем сделать вывод
os.getenv
- это просто обертка вокругos.environ.get
.