美文网首页
2018-11-20 os.environ, os.geten

2018-11-20 os.environ, os.geten

作者: tafanfly | 来源:发表于2018-11-20 16:01 被阅读0次

os.environ 介绍

一个字符串所对应环境的映像对象, 例如,environ['HOME']就代表了当前这个用户的主目录。

可以像字典一样操作,但是实际上类型是instanceUserDict.IterableUserDict的子类, 可以配置环境变量

In [1]: import os

In [2]: print os.environ['HOME']
/home/user

In [3]: print os.environ['no_proxy']
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-3-c8022dd9279c> in <module>()
----> 1 print os.environ['no_proxy']

/usr/lib/python2.7/UserDict.pyc in __getitem__(self, key)
     38         if hasattr(self.__class__, "__missing__"):
     39             return self.__class__.__missing__(self, key)
---> 40         raise KeyError(key)
     41     def __setitem__(self, key, item): self.data[key] = item
     42     def __delitem__(self, key): del self.data[key]

KeyError: 'no_proxy'

In [4]: print type(os.environ)
<type 'instance'>

In [5]: os.environ.__class__
Out[5]: <class os._Environ at 0x7fc3fa5e9ef0>

os.getenv 介绍

获取环境变量, 如果变量名存在返回改值,否则返回None

In [1]: import os

In [2]: print os.getenv('HOME')
/home/tafan

In [3]: print os.getenv('no_proxy')
None

组合使用

  • 举例:增加no_proxy环境变量

os.environ['no_proxy'] = ','.join([os.getenv('no_proxy', ''), '127.0.0.1', 'localhost'])

In [1]: import os

In [2]: print os.getenv('no_proxy')
None

In [3]: os.environ['no_proxy'] = ','.join([os.getenv('no_proxy', ''), '127.0.0.1', 'localhost'])

In [4]: print os.getenv('no_proxy')
,127.0.0.1,localhost

In [5]: print os.environ['no_proxy']
,127.0.0.1,localhost
  • 区别
  1. os.environ 获取不存在的变量名会报exception, 而os.getenv则不会,直接返回None
  2. os.getenv 只能读取环境变量, 而os.environ 即可以读取,也可以写入环境变量

相关文章

网友评论

      本文标题:2018-11-20 os.environ, os.geten

      本文链接:https://www.haomeiwen.com/subject/ttcxqqtx.html