Python中os.environ環(huán)境變量交互機(jī)制的使用
什么是os.environ?
os.environ 是 Python 提供的一個 “環(huán)境變量字典”,它包含了當(dāng)前操作系統(tǒng)環(huán)境變量的全部信息。
- 由 Python 的
os模塊 提供。 - 本質(zhì)上是一個特殊的 字典(os._Environ 對象),鍵是環(huán)境變量名稱,值是對應(yīng)的字符串。
1.我們可以把 os.environ 理解為:
“當(dāng)前 Python 進(jìn)程啟動時,繼承自操作系統(tǒng)環(huán)境變量的映射表”。
當(dāng)我們在 Python 中訪問:
import os print(os.environ['PATH'])
獲取到的就是 系統(tǒng)環(huán)境變量 PATH 的值。
2.常見用法示例
訪問環(huán)境變量:
import os
print(os.environ['PATH']) # 訪問 PATH 環(huán)境變量
print(os.environ.get('PYTHONPATH')) # 安全訪問,若沒有返回 None
設(shè)置/修改環(huán)境變量(僅當(dāng)前進(jìn)程有效):
os.environ['MY_VAR'] = 'HelloWorld' print(os.environ['MY_VAR']) # HelloWorld
刪除某個環(huán)境變量(僅當(dāng)前進(jìn)程有效):
del os.environ['MY_VAR']
遍歷所有環(huán)境變量:
for key, value in os.environ.items():
print(f"{key} = {value}")
3.os.environ 的特性
| 特性 | 說明 |
|---|---|
| 表現(xiàn)為字典類型 (os._Environ) | 類似普通dict,但是受操作系統(tǒng)影響的特殊對象 |
| 只影響當(dāng)前Python進(jìn)程 | 我們通過 os.environ 修改的環(huán)境變量,不會影響系統(tǒng)/終端/其他程序 |
| 啟動時從系統(tǒng)環(huán)境變量中繼承 | Python 啟動時,會讀取操作系統(tǒng)環(huán)境變量,填充 os.environ |
| 不會寫入到系統(tǒng)永久環(huán)境變量 | 想要永久生效需要到操作系統(tǒng)環(huán)境變量中配置(如Windows環(huán)境變量配置界面) |
4.os.environ 修改只對當(dāng)前進(jìn)程有效
例如:
import os os.environ['MY_VAR'] = 'Python' print(os.environ['MY_VAR']) # Python # 關(guān)閉Python后再運(yùn)行 CMD: echo %MY_VAR% -> 沒有這個變量
- 我們用 os.environ 設(shè)置的變量只存在于當(dāng)前Python進(jìn)程的內(nèi)存空間。
- 不會反向修改操作系統(tǒng)全局的環(huán)境變量。
5.PYTHONPATH 與 os.environ 的關(guān)系
當(dāng)我們設(shè)置了 系統(tǒng)環(huán)境變量 PYTHONPATH,Python 啟動時會自動將其加入
os.environ['PYTHONPATH']。我們也可以在Python代碼里動態(tài)設(shè)置 PYTHONPATH:
os.environ['PYTHONPATH'] = '/my/custom/path'
但這只影響當(dāng)前Python進(jìn)程的 sys.path 初始化,并不會改變系統(tǒng)環(huán)境變量。
6.總結(jié)一句話
os.environ 就是Python程序用來“讀取與操作環(huán)境變量”的窗口。它是Python對操作系統(tǒng)環(huán)境變量的一個實時映射(當(dāng)前進(jìn)程范圍內(nèi))。
到此這篇關(guān)于Python中os.environ環(huán)境變量交互機(jī)制的使用的文章就介紹到這了,更多相關(guān)Python os.environ內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python爬蟲爬取一個網(wǎng)頁上的圖片地址實例代碼
這篇文章主要介紹了Python爬蟲爬取一個網(wǎng)頁上的圖片地址實例代碼,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
Python 字符串操作實現(xiàn)代碼(截取/替換/查找/分割)
這篇文章主要介紹了Python 字符串截取/替換/查找/分割等實現(xiàn)方法,需要的朋友可以參考下2013-06-06
Python Lambda函數(shù)使用總結(jié)詳解
這篇文章主要介紹了Python Lambda函數(shù)使用總結(jié)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12
python網(wǎng)絡(luò)爬蟲之協(xié)程的實現(xiàn)方法
這篇文章主要介紹了python網(wǎng)絡(luò)爬蟲之協(xié)程的實現(xiàn)方法,協(xié)程Coroutine又稱微線程,是一種用戶態(tài)內(nèi)的上下文切換技術(shù),簡而言之,就是通過一個線程實現(xiàn)代碼塊相互切換執(zhí)行,需要的朋友可以參考下2023-08-08
python使用正則表達(dá)式去除中文文本多余空格,保留英文之間空格方法詳解
這篇文章主要介紹了python使用正則表達(dá)式去除中文文本多余空格,保留英文之間空格方法詳解,需要的朋友可以參考下2020-02-02

