os.environ 介绍
一个字符串所对应环境的映像对象, 例如,environ['HOME']就代表了当前这个用户的主目录。
可以像字典一样操作,但是实际上类型是instance
,UserDict.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
- 区别
- os.environ 获取不存在的变量名会报exception, 而os.getenv则不会,直接返回None
- os.getenv 只能
读取
环境变量, 而os.environ 即可以读取
,也可以写入
环境变量
网友评论