python操作環境變數(登錄檔)

2021-08-27 08:08:24 字數 1506 閱讀 7994

os.environ

在python**中匯入python自帶模組os,使用os.environ可以獲取所有的環境變數資訊,但是只是乙個對映,也就是說對於environ的修改只是在當前**中,不會去修改本機上真實的環境變數。

一、設定系統環境變數

1、os.environ['環境變數名稱']='環境變數值' #其中key和value均為string型別

2、os.putenv('環境變數名稱', '環境變數值')

二、獲取系統環境變數

1、os.environ['環境變數名稱']

2、os.getenv('環境變數名稱')

import os

print(os.environ['path'])#獲取的路徑和os.getenv('path')獲取的一樣

print(os.getenv('path'))

os.putenv('aaa', 'bbb')

os.environ['ccc'] = 'ddd'

print(os.environ)//裡面有ccc,但是沒有aaa

print(os.getenv('aaa'))//none

修改本機真實環境變數

這就是我上一節說的操作登錄檔了,可以獲取到登錄檔中的環境變數,並修改真實的環境

winreg.hkey_local_machine\system\currentcontrolset\control\session manager\environment'
hkey_current_user\environment
path_key = winreg.openkey(winreg.hkey_local_machine,r'system\currentcontrolset\control\session manager\environment',0, winreg.key_all_access)

path_value = winreg.queryvalueex(path_key, 'path')

winreg.setvalueex(path_key,"path",0,winreg.reg_expand_sz, '新的環境變數')

refresh()

#修改登錄檔後,更新生效

def refresh():

hwnd_broadcast = 0xffff

wm_settingchange = 0x1a

smto_abortifhung = 0x0002

result = ctypes.c_long()

sendmessagetimeoutw = ctypes.windll.user32.sendmessagetimeoutw

sendmessagetimeoutw(hwnd_broadcast, wm_settingchange, 0, u'environment', smto_abortifhung, 5000, ctypes.byref(result))

環境變數temp的登錄檔路徑

有時候,我需要修改系統的環境變數temp,為了方便我都是在我的電腦的屬性中開啟環境變數對話方塊來修改。每當系統出現問題時,為了確認我的修改是否成功,我需要到登錄檔中檢視相應的鍵值。為了以後方便查詢,在此用文章記錄一下。系統環境變數分為 使用者變數 和 系統變數 兩種。使用者變數 對應的登錄檔路徑為 ...

C 寫登錄檔新增環境變數

在站點搭建的時候需要安裝.zip格式的 mysq l和 php的安裝包等,需要將解壓的路徑寫入系統環境變數中,這樣方便在使用mysql或者php的時候不需要新增絕對路徑而直接使用。所以需要將安裝路徑寫入環境變數,如 d mywww server mysql 5.6 bin 直接寫入環境變數的path...

修改登錄檔修改環境變數PATH

因公司辦公電腦做了許可權設定,不能通過右擊 我的電腦 屬性的方式更改環境變數值 摸索找到了通過修改登錄檔的方式修改path值 win r 輸入regedit開啟冊表編輯器 hkey local machine system currentcontrolset control session mana...