python中经常会通过环境变量来进行参数传递和环境配置。
本章记录读取环境变量的方案
设置环境变量
首先设置环境变量
$ export ENV_PORT=3333
$ echo $ENV_PORT
3333
方案一 os读取
os直接读取
使用os获取环境变量字典
import os
os.getenv('ENV_PORT')
os.environ.get('ENV_PORT')
os.environ['ENV_PORT']
打印所有环境变量,遍历字典
import os
env_dist = os.environ # environ是在os.py中定义的一个dict environ = {}
for key in env_dist:
print key + ' : ' + env_dist[key]
通过文件中转环境变量
方法如下:
import os
import ConfigParser
cf = ConfigParser.ConfigParser()
cf.read('test.conf')
def resolveEnv(con):
if con.startswith('ENV_'):
return os.environ.get(con)
return con
def main():
host = resolveEnv(cf.get('db', 'host'))
port = resolveEnv(cf.get('db', 'port'))
print 'host:%s' % host
print 'port:%s' % port
if __name__ == "__main__":
main()
查看一下配置文件:
$ cat test.conf
[db]
host = 1.2.3.4
port = ENV_PORT
读取配置文件:
$ python test.py
host:1.2.3.4
port:3333 |