设置临时环境变量

import os

# 设置环境变量
os.environ['WORKON_HOME']="value"
# 获取环境变量方法1
os.environ.get('WORKON_HOME')
#获取环境变量方法2(推荐使用这个方法)
os.getenv('path')
# 删除环境变量
del os.environ['WORKON_HOME']

其他key值:
os.environ['HOMEPATH']:当前用户主目录。
os.environ['TEMP']:临时目录路径。
os.environ['PATHEXT']:可执行文件。
os.environ['SYSTEMROOT']:系统主目录。
os.environ['LOGONSERVER']:机器名。
os.environ['PROMPT']:设置提示符。

永久环境变量

因为python没办法直接设置永久的环境变量,所以要借助命令行来实现

import os
path=r"E:\env"
command =r"setx WORK1 %s /m"%path
os.system(command)
/m代表系统变量。
不加/m为用户变量

实战

前提:我想通过启动程序传参来控制我的数据库环境

解决:

1.在一个配置文件里面写多个环境的配置,定义一个配置文件testcase.conf

[stage_sqlserver]
host = XXX
db = XXX
user = XXX
password = XXX
charset = utf8

[prod_sqlserver]
host = XXX
db = XXX
user = XXX
password = XXX
charset = utf8

2、在main.py函数中设置全局变量

if __name__ == '__main__':

    test_env = sys.argv[1]
    env = ["stage", "pre", "prod"]
    if test_env not in env:
        raise Exception("环境错误" + test_env)

    os.environ["test_env"] = test_env

3、把数据库封装成一个对象HandleMssql

def __init__(self):
        env_mssql = os.getenv('test_env') + '_sqlserver'
        self.conn = pymssql.connect(do_config.get_data(env_mssql, 'host'),
                                    do_config.get_data(env_mssql, 'user'),
                                    do_config.get_data(env_mssql, 'password'),
                                    do_config.get_data(env_mssql, 'db'))
        # self.conn = pymssql.connect('Dev1.tutorabc.com', 'BdIms3Acct', 'n6Sp4phAWUp_', 'muchnewdb')
        self.cursor = self.conn.cursor()

4、在控制台输入 python main.py stage

5、在这里要讲下sys.argv

sys.argv[]就是从程序外部获取参数的桥梁,得到的一个列表,列表的第一个酸雨是程序本身,其次才依次是外部给与的参数。

main.py
if __name__ == '__main__':

    result = sys.argv # 得到的是程序本身+外部输入参数的列表
    for r in result:
        print(r)

在命令行输入如下信息

python 添加系统环境变量 python os添加环境变量_环境变量

 注意参数之间是用空格来区别的,如下

python 添加系统环境变量 python os添加环境变量_环境变量_02