麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Python > 正文

使用Python處理系統環境變量

2023-04-24 19:21:33
字體:
來源:轉載
供稿:網友

環境變量在操作系統中用于指定操作系統運行環境的一些參數。如臨時文件夾的位置,某種程序的搜索路徑等。

環境變量使用變量名=具體值的方式進行指定,每個變量之間使用分號進行分隔。

Python操作環境變量原理

在Python中,你可以把系統環境變量當做一個字典來操作。環境變量的變量名稱即為字典的鍵(key),而對應的鍵值就是對應的環境變量的值。

我們可以使用Python中os模塊中的environ對系統變量進行相關操作。

Python中操作系統環境變量

Python中讀取環境變量的所有值

下面這個例子用于輸出所有的系統變量信息

import os

print(os.environ)

輸出結果如下:

environ({'ALLUSERSPROFILE': 'C://ProgramData', 'APPDATA': 'C://Users//Kinglong//AppData//Roaming', 'COMMONPROGRAMFILES': 'C://Program Files//Common Files', 'COMMONPROGRAMFILES(X86)': 'C://Program Files (x86)//Common Files', 'COMMONPROGRAMW6432': 'C://Program Files//Common Files',  'COMSPEC': 'C://Windows//system32//cmd.exe', 'DRIVERDATA': 'C://Windows//System32//Drivers//DriverData', 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer', 'FPS_BROWSER_USER_PROFILE_STRING': 'Default',  'HOME': 'C://Users//Kinglong', 'HOMEDRIVE': 'C:', 'HOMEPATH': '//Users//Kinglong',  'LOCALAPPDATA': 'C://Users//Kinglong//AppData//Local',  'NUMBER_OF_PROCESSORS': '8', 'NUTSUFFIX': '1', 'NUT_SUFFIXED_SEARCHING': '1', 'ONEDRIVE': 'D://onedrive', 'OS': 'Windows_NT', 'PATH': 'C://Windows//system32;C://Windows;C://Windows//System32//Wbem;C://Windows//System32//WindowsPowerShell//v1.0//;C://Windows//System32//OpenSSH//;C://Program Files (x86)//Microsoft SQL Server//100//Tools//Binn//;C://Program Files//Microsoft SQL Server//100//Tools//Binn//;C://Program Files//Microsoft SQL Server//100//DTS//Binn//;C://Program Files (x86)//Microsoft SQL Server//100//Tools//Binn//VSShell//Common7//IDE//;C://Program Files (x86)//Microsoft Visual Studio 9.0//Common7//IDE//PrivateAssemblies//;C://Program Files (x86)//Microsoft SQL Server//100//DTS//Binn//;C://Program Files//Microsoft SQL Server//130//Tools//Binn//;C://Program Files//Microsoft SQL Server//Client SDK//ODBC//170//Tools//Binn//;C://Program Files//dotnet//;C://Program Files (x86)//Rational//common;C://Users//Kinglong//AppData//Local//Programs//Python//Python310//Scripts//;C://Users//Kinglong//AppData//Local//Programs//Python//Python310//;C://Users//Kinglong//AppData//Local//Microsoft//WindowsApps;C://Users//Kinglong//.dotnet//tools;C://Program Files//JetBrains//PyCharm 2022.1.3//bin;',  'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 140 Stepping 2, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '8c02', 'PROGRAMDATA': 'C://ProgramData', 'PROGRAMFILES': 'C://Program Files', 'PROGRAMFILES(X86)': 'C://Program Files (x86)', 'PROGRAMW6432': 'C://Program Files', 'PSMODULEPATH': 'C://Program Files//WindowsPowerShell//Modules;C://Windows//system32//WindowsPowerShell//v1.0//Modules', 'PUBLIC': 'C://Users//Public', 'PYCHARM': 'C://Program Files//JetBrains//PyCharm 2022.1.3//bin;', 'RATL_RTHOME': 'C://Program Files (x86)//Rational//Rational Test',  'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C://Windows', 'TEMP': 'C://Users//Kinglong//AppData//Local//Temp', 'TMP': 'C://Users//Kinglong//AppData//Local//Temp', 'USERNAME': 'Kinglong', 'USERPROFILE': 'C://Users//Kinglong',  'WINDIR': 'C://Windows', 'ZES_ENABLE_SYSMAN': '1'})

可以看到這個輸出結果很長,這跟操作系統和安裝軟件的內容的具體設置有關,每臺電腦的信息不一定相同。

上面這個結果在一行中輸出所有內容,顯得有些凌亂,如果想讓其按照鍵值的方式顯示內容,你可以使用一個循環來處理。

import os

for k, v in os.inviron.items():
    print(f'{k}={v}')

輸出結果如下:

ALLUSERSPROFILE=C:/ProgramData
APPDATA=C:/Users/Kinglong/AppData/Roaming
COMMONPROGRAMFILES=C:/Program Files/Common Files
COMMONPROGRAMFILES(X86)=C:/Program Files (x86)/Common Files
COMMONPROGRAMW6432=C:/Program Files/Common Files
COMSPEC=C:/Windows/system32/cmd.exe
DRIVERDATA=C:/Windows/System32/Drivers/DriverData
FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer
FPS_BROWSER_USER_PROFILE_STRING=Default
HOME=C:/Users/Kinglong
HOMEDRIVE=C:
HOMEPATH=/Users/Kinglong
LOCALAPPDATA=C:/Users/Kinglong/AppData/Local
NUMBER_OF_PROCESSORS=8
NUTSUFFIX=1
NUT_SUFFIXED_SEARCHING=1
ONEDRIVE=D:/onedrive
OS=Windows_NT
PATH=C:/Windows/system32;C:/Windows;C:/Windows/System32/Wbem;C:/Windows/System32/WindowsPowerShell/v1.0/;C:/Windows/System32/OpenSSH/;C:/Program Files (x86)/Microsoft SQL Server/100/Tools/Binn/;C:/Program Files/Microsoft SQL Server/100/Tools/Binn/;C:/Program Files/Microsoft SQL Server/100/DTS/Binn/;C:/Program Files (x86)/Microsoft SQL Server/100/Tools/Binn/VSShell/Common7/IDE/;C:/Program Files (x86)/Microsoft Visual Studio 9.0/Common7/IDE/PrivateAssemblies/;C:/Program Files (x86)/Microsoft SQL Server/100/DTS/Binn/;C:/Program Files/Microsoft SQL Server/130/Tools/Binn/;C:/Program Files/Microsoft SQL Server/Client SDK/ODBC/170/Tools/Binn/;C:/Program Files/dotnet/;C:/Program Files (x86)/Rational/common;C:/Users/Kinglong/AppData/Local/Programs/Python/Python310/Scripts/;C:/Users/Kinglong/AppData/Local/Programs/Python/Python310/;C:/Users/Kinglong/AppData/Local/Microsoft/WindowsApps;C:/Users/Kinglong/.dotnet/tools;C:/Program Files/JetBrains/PyCharm 2022.1.3/bin;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 140 Stepping 2, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=8c02
PROGRAMDATA=C:/ProgramData
PROGRAMFILES=C:/Program Files
PROGRAMFILES(X86)=C:/Program Files (x86)
PROGRAMW6432=C:/Program Files
PSMODULEPATH=C:/Program Files/WindowsPowerShell/Modules;C:/Windows/system32/WindowsPowerShell/v1.0/Modules
PUBLIC=C:/Users/Public
PYCHARM=C:/Program Files/JetBrains/PyCharm 2022.1.3/bin;
RATL_RTHOME=C:/Program Files (x86)/Rational/Rational Test
SESSIONNAME=Console
SYSTEMDRIVE=C:
SYSTEMROOT=C:/Windows
TEMP=C:/Users/Kinglong/AppData/Local/Temp
TMP=C:/Users/Kinglong/AppData/Local/Temp
USERNAME=Kinglong
USERPROFILE=C:/Users/Kinglong
WINDIR=C:/Windows
ZES_ENABLE_SYSMAN=1

這個結果要比上一個清晰的多,閱讀比較方便。

Python讀取特定環境變量的值

有時我們需要讀取特定變量的值,下面這段程序可以實現這個要求。

import os

temp_dir = os.environ['temp']
path = os.environ['path']

print(f'臨時文件夾:{temp_dir},/r/n路徑:{path}')

輸出結果如下:

臨時文件夾:C:/Users/Kinglong/AppData/Local/Temp,

路徑:C:/Windows/system32;C:/Windows;C:/Windows/System32/Wbem;C:/Windows/System32/WindowsPowerShell/v1.0/;C:/Windows/System32/OpenSSH/;C:/Program Files (x86)/Microsoft SQL Server/100/Tools/Binn/;C:/Program Files/Microsoft SQL Server/100/Tools/Binn/;C:/Program Files/Microsoft SQL Server/100/DTS/Binn/;C:/Program Files (x86)/Microsoft SQL Server/100/Tools/Binn/VSShell/Common7/IDE/;C:/Program Files (x86)/Microsoft Visual Studio 9.0/Common7/IDE/PrivateAssemblies/;C:/Program Files (x86)/Microsoft SQL Server/100/DTS/Binn/;C:/Program Files/Microsoft SQL Server/130/Tools/Binn/;C:/Program Files/Microsoft SQL Server/Client SDK/ODBC/170/Tools/Binn/;C:/Program Files/dotnet/;C:/Program Files (x86)/Rational/common;C:/Users/Kinglong/AppData/Local/Programs/Python/Python310/Scripts/;C:/Users/Kinglong/AppData/Local/Programs/Python/Python310/;C:/Users/Kinglong/AppData/Local/Microsoft/WindowsApps;C:/Users/Kinglong/.dotnet/tools;C:/Program Files/JetBrains/PyCharm 2022.1.3/bin;

上面的代碼實現了輸出了系統的臨時存儲目錄和程序運行的搜索路徑。

這樣就可以根據用戶的需要來讀取指定的系統變量值。

Python判斷指定的系統變量是否存在

上面的程序實現了讀取指定系統變量的值,但如果指定的系統變量不存在時,將會引發KeyError錯誤,為了較好的處理這個問題,我們可以在操作指定系統變量之前先判斷一下該系統變量是否存在,具體操作方法如下:

import os

what_vars = [ 'temp', 'VeVb.com']
for v in what_vars:
   if v in os.environ:
        print(f'{v} = {os.environ[v]}')
   else:
        print(f'{v}在系統變量中不存在。')

輸出結果如下:

temp = C:/Users/Kinglong/AppData/Local/Temp
VeVb.com在系統變量中不存在。

使用os.environ.get()方法獲取環境變量的值

使用os.environ.get()方法也可以避免出現KeyError錯誤。當指定的環境變量不存在時,os.environ.get()方法將返回None值。該方法也可以指定一個默認值,當指定的環境變量不存在時將返回指定的默認值。

import os

what_var1, what_var2, what_var3 = 'temp', 'syspath', 'java'
print(os.environ.get(what_var1))
print(os.environ.get(what_var2))
print(os.environ.get(what_var3, 'java_home'))

輸出結果:

C:/Users/Kinglong/AppData/Local/Temp
None
java_home

上面程序中,what_var2what_var3指定的環境變量是不存在的,所以在使用what_var2輸出指定環境變量的值時,其輸出了None,而我們給what_var3指定了默認值,則其輸出了其指定的默認值"java_home"

Python中設置環境變量的值

在Python中可以使用下面的方法設置環境變量。

import os

print(f"修改前:{os.environ.get('TMP')}")
os.environ['tmp'] = f'D:/Files'
print(f"修改后:{os.environ.get('TMP')}")

輸出結果:

修改前:C:/Users/Kinglong/AppData/Local/Temp
修改后:D:/Files

要注意使用這種方式不能真正的修改系統的環境變量值,它只是修改了Python當前解釋器運行中的值。同時,在使用該方法修改系統變量的值時,該值必須使用字符串的形式給出,即使是數值也需要指定為字符串的格式。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 视频一区 在线 | 久久久久久久高清 | 日本精品黄色 | 91久久久久 | 成人在线视频一区 | 国产午夜精品久久久久久免费视 | 深夜福利视频免费观看 | 国产精品爆操 | 91精品最新国内在线播放 | 久久国产亚洲精品 | 亚洲成人夜色 | 免费在线国产 | 国产精品午夜性视频 | 国产精品av久久久久久网址 | 羞羞视频免费网站含羞草 | 九九热精品视频在线 | 在线a毛片 | 在线视频观看成人 | 久久激情免费视频 | av电影免费在线看 | mmmwww| 亚洲精品成人在线视频 | 久久草在线观看视频 | 黄色三级三级三级 | 成片免费观看视频大全 | 免费黄网站在线播放 | 97久久人人超碰caoprom | 一本色道久久99精品综合蜜臀 | 免费成人| 久久久一区二区三区四区 | a视频在线免费观看 | 久久久久久久久久91 | 国产成人精品免费视频大全最热 | 成人毛片免费看 | 亚州精品天堂中文字幕 | 婷婷一区二区三区 | 久久亚洲精品国产一区 | 中国女警察一级毛片视频 | freexxx69性欧美hd| 亚洲成人精品一区二区 | 亚洲网站免费观看 |