在 Python 可以使用 os 模塊的 os.environ 處理環(huán)境變量。
使用 os.environ 將獲取到 Python 腳本啟動時的環(huán)境變量,它是個 mapping 對象,可以像字典一樣操作。
按照環(huán)境變量名取得它的值,建議使用 get 方法。
>>> import os
>>> os.environ["SHELL"]
'/bin/bash'
>>> os.environ.get("LANG")
'en_US.UTF-8'
# 沒有該環(huán)境變量時返回 None
>>> os.environ.get("MONEY")
>>>
雖然有 os.putenv 函數添加新的環(huán)境變量,但是推薦直接使用 os.environ 添加新的環(huán)境變量。
下面的代碼可以看出 2 種方法的區(qū)別,使用 os.putenv 可以添加環(huán)境變量,但是添加后不更新 os.environ 對象,因此無法直接訪問;使用 os.environ 添加新環(huán)境變量不會有這個問題。
添加的環(huán)境變量會作用于當前 Python 進程和子進程,但是 Python 主進程退出后不會影響到 shell 環(huán)境,也就是說你完全可以添加新環(huán)境變量而不刪除。
>>> os.putenv("MONEY", "100000000")
>>> os.environ.get("MONEY")
# 添加后不更新 os.environ
>>> os.getenv("MONEY")
>>> os.environ["MONEY"] = "100000000"
# 添加后更新 os.environ
>>> os.environ.get("MONEY")
'100000000'
>>> os.getenv("MONEY")
'100000000'
刪除環(huán)境變量也像刪除字典的元素一樣,推薦使用 pop 方法。
>>> del os.environ["MONEY"]
>>> os.environ.pop("MONEY", "default")
'default'