原文链接:https://www.cnblogs.com/luocodes/p/10690246.html
设置临时环境变量
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)
在命令行输入如下信息
注意参数之间是用空格来区别的,如下
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步