原文鏈接: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)
在命令行輸入如下信息
注意參數之間是用空格來區別的,如下