如何在Python 中訪問環境變數| D棧

文章推薦指數: 80 %
投票人數:10人

環境變數. 環境變數是為Python 程式外部分配值的變數。

· Python 中的環境變數. 設定環境變數的機制取決於作業系統。

· 讀取環境變數. 通過在 os.environ ... Python貼士 Python中的條件賦值運算子 使用Python播放Mp3檔案 使用Python檢查作業系統 在Python中從字串中刪除逗號 Python中如何將位元組bytes轉換為整數int 如何將整型int轉換為位元組bytes 如何在Python中獲取和增加最大遞迴深度 如何建立和啟用Python虛擬執行環境virtualenv reportthisad 貼士文章 Python貼士 如何在Python中訪問環境變數 環境變數 Python中的環境變數 讀取環境變數 寫環境變數 環境變數 環境變數是為Python程式外部分配值的變數。

開發人員通常在呼叫Python可執行檔案之前在命令列上進行設定。

然後,作業系統使Python程式可從內部訪問這些變數。

環境變數的存在提高了程式靈活性。

使用者可以在程式執行之前更改特定的引數,並且程式將能夠檢視這些引數並動態修改其行為,這一些都不需要修改程式碼,將環境變數的這種使用稱為程式配置。

Python中的環境變數 設定環境變數的機制取決於作業系統。

因此,它們可以通過Python的內建os模組使用,該模組抽象出了依賴於作業系統的功能。

Python執行時將程式的所有環境變數保留在類似字典的os.environ物件中。

請注意,os.environ物件在當Python執行載入os模組時被填充。

如果你嘗試在事後更改環境變數(例如,通過在terminal中匯出新的環境變數),它不會起作用的。

讀取環境變數 通過在os.environ物件上執行類似字典的操作來訪問Python中的環境變數。

>>>importos >>>os.environ environ({'HOME':'/Users/john','LANG':'en_US.UTF-8','LOGNAME':'john','OLDPWD':'/Users/john','PATH':'/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin','PWD':'/Users/john/python-tutorial','SHELL':'/bin/zsh','TERM':'screen','TERM_PROGRAM':'Apple_Terminal','TERM_PROGRAM_VERSION':'433','TERM_SESSION_ID':'CDC91EF3-15D6-41AD-A17B-E959D97BC4B5','TMPDIR':'/var/folders/md/31nwv67j113d19z0_1287f1r0000gn/T/','TMUX':'/private/tmp/tmux-501/default,3319,0','TMUX_PANE':'%28','USER':'john','_':'/usr/local/bin/python3','__PYVENV_LAUNCHER__':'/usr/local/bin/python3'}) >>>os.environ['HOME'] '/Users/john' >>>os.environ['LANG'] 'en_US.UTF-8' 如果使用下標[]符號訪問環境變數,並且該變數未定義,則將出現執行時錯誤。

>>>os.environ['I_DONT_EXIST'] Traceback(mostrecentcalllast): File"",line1,in File"/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py",line679,in__getitem__ raiseKeyError(key)fromNone KeyError:'I_DONT_EXIST' 為避免此問題,os.environ可以使用get()介面從物件讀取。

如果尚未定義查詢的環境變數,則get()返回None。

>>>result=os.environ.get('I_DONT_EXIST') >>>print(result) None get()方法的一個便利功能是,你可以指定一個預設值,以防在環境變數中搜尋找不到時候返回此預設值。

>>>os.environ.get('I_DONT_EXIST','I_AM_DEFAULT') 'IAMDEFAULT' 替代os.environ.get()的方法是使用os.getenv()功能。

這兩個函式的工作原理相同,你可以將後者視為便捷的API。

寫環境變數 有時你需要在程式中更改環境變數。

例如,如果你需要在收到配置網路請求時修改應用程式的行為,則可能會發生這種情況。

你可以使用下標[]運算子來更改環境變數,就像使用os.environ標準字典一樣。

>>>importos >>>os.environ['LANG'] 'en_US.UTF-8' >>>os.environ['LANG']='en_GB.UTF-8' >>>os.environ['LANG'] 'en_GB.UTF-8' 請注意,環境變數值應為字串型別。

如果你嘗試將整數或任何其他非字串值分配給環境變數,則會出現執行時錯誤。

>>>importos >>>os.environ['LANG']=4 Traceback(mostrecentcalllast): File"",line1,in File"/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py",line684,in__setitem__ value=self.encodevalue(value) File"/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py",line754,inencode raiseTypeError("strexpected,not%s"%type(value).__name__) TypeError:strexpected,notint 相關文章-PythonEnvironment Python中的dotenv 在Python中設定和獲取環境變數 如何在Python中刪除列表中的重複資料如何從Python字典中刪除元素 xx



請為這篇文章評分?