python 获取环境变量

用Python Shell设置或获取环境变量的方法:

一、设置系统环境变量

1、os.environ['环境变量名称']='环境变量值' #其中key和value均为string类型

2、os.putenv('环境变量名称', '环境变量值')

二、获取系统环境变量

1、os.environ['环境变量名称']

2、os.getenv('环境变量名称')

环境变量vi /etc/profile

…… 
export BDP_TEST=true 
export BDP_ENV=test

python工程使用方法

import os

# 使用os.environ获取环境变量字典,environ是在os.py中定义的一个dict environ = {} 
env_dist = os.environ 

# 打印所有环境变量,遍历字典
for key in env_dist:
    print key + ' : ' + env_dist[key]

# 判断环境变量是否包含
if 'BDP_ENV' in os.environ and os.getenv('BDP_ENV') == 'prod':
    DB_CONFIG = '/data/BdpAirflowWorker/config/db_config.ini'
elif 'BDP_ENV' in os.environ and os.getenv('BDP_ENV') == 'test':
    DB_CONFIG = '/data/BdpAirflowWorker/config/db_config_test.ini'
else:
    DB_CONFIG = '/Users/tangtao/PycharmProjects/BdpAirflowWorker/config/db_config_test.ini'

 

用例:

1.在config目录下新建config/db_config.ini和config/db_config_test.ini文件,存储系统配置信息

配置文件(INI文件)由节(section)、键、值组成。配置文件中用的是等号,也可以用冒号

[gp_furion]
host = 10.9.155.161
port = 5432
user = api_crm
passwd = 38211639
database = furion

[gp_susuan]
host = 10.9.104.200
port = 5432
user = api_panshi
passwd = pan!@#shi34(+)
database = octopus_susuan

 

2.增加公共方法Utils/config.py

configParser 模块用于操作配置文件,创建一个对象使用对象的方法对指定的配置文件做增删改查 操作。

创建ConfigParser实例:config=ConfigParser.ConfigParser() 

返回section节中,option的键值:config.get(section,option)

读取配置文件:config.read(filename) 

import os
import configparser

if 'BDP_PROD' in os.environ:
    DB_CONFIG = 'config/db_config.ini'
else:
    DB_CONFIG = 'config/db_config_test.ini'

class bdp_config_parse:

    def __init__(self, default_config):
        self._config = configparser.ConfigParser()
        self._config.read(default_config)
        print default_config
        print str(os.curdir)

    def get(self,section, key):
        return self._config.get(section, key)

    def getint(self, scetion, key):
        return self._config.getint(scetion, key)

db_conf = bdp_config_parse(DB_CONFIG)

 

3.使用环境变量配置

from Utils import config

class PrestoConnection:
    HOST = config.db_conf.get('presto_susuan', 'host')
    PORT = config.db_conf.getint('presto_susuan', 'port')
    USER = config.db_conf.get('presto_susuan', 'user')
    CATALOG = config.db_conf.get('presto_susuan', 'catalog')
    SCHEMA = config.db_conf.get('presto_susuan', 'schema')
    PASSWORD = config.db_conf.get('presto_susuan', 'passwd')
    DATABASE = config.db_conf.get('presto_susuan', 'database')

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值