Python實(shí)現(xiàn)的讀取電腦硬件信息功能示例
本文實(shí)例講述了Python實(shí)現(xiàn)的讀取電腦硬件信息功能。分享給大家供大家參考,具體如下:
上學(xué)那會(huì),老師讓我用java獲取電腦硬件信息,CPU, 硬盤,MAC等,那個(gè)時(shí)候感覺(jué)搞了好久。。。。。。
今天,用python試了一下,簡(jiǎn)單多了。分享一下:
首先安裝wmi庫(kù),wmi是一種規(guī)范和基礎(chǔ)結(jié)構(gòu),通過(guò)它可以訪問(wèn)、配置、管理和監(jiān)視幾乎所有的Windows資源。大多用戶習(xí)慣于使用眾多的圖形化管理工 具來(lái)管理Windows資源,在wmi之前這些工具都是通過(guò) Win32應(yīng)用程序編程接口來(lái)訪問(wèn)和管理Windows資源的。大多數(shù)腳本 語(yǔ)言都不能直接調(diào)用Win32 API,wmiI的出現(xiàn)使得系統(tǒng)管理員可以通過(guò)一種簡(jiǎn)便的方法即利用常見的腳本語(yǔ)言實(shí)現(xiàn)常用的系統(tǒng)管理任務(wù)。好了,上代碼吧
import wmi import time import json import win32com class PCHardwork(object): global s s = wmi.WMI() def get_CPU_info(self): cpu = [] cp = s.Win32_Processor() for u in cp: cpu.append( { "Name": u.Name, "Serial Number": u.ProcessorId, "CoreNum": u.NumberOfCores, "numOfLogicalProcessors": u.NumberOfLogicalProcessors, "timestamp": time.strftime('%a, %d %b %Y %H:%M:%S', time.localtime()), "cpuPercent": u.loadPercentage } ) print ":::CPU info:", json.dumps(cpu, True, indent=4) return cpu def get_disk_info(self): disk = [] for pd in s.Win32_DiskDrive(): disk.append( { "Serial": s.Win32_PhysicalMedia()[0].SerialNumber.lstrip().rstrip(), # 獲取硬盤序列號(hào),調(diào)用另外一個(gè)win32 API "ID": 123456, "Caption": pd.Caption, "size": str(int(float(pd.Size)/1024/1024/1024))+"G" } ) print":::Disk info:", json.dumps(disk, True, indent=4) return disk def get_network_info(self): network = [] for nw in s.Win32_NetworkAdapterConfiguration (IPEnabled=1): network.append( { "MAC": nw.MACAddress, "ip": nw.IPAddress } ) print":::Network info:", json.dumps(network, True, indent=4) return network def get_running_process(self): process = [] for p in s.Win32_Process(): process.append( { p.Name: p.ProcessId } ) print":::Running process:", json.dumps(process, True, indent=4) return process #運(yùn)行測(cè)試: PCinfo = PCHardwork() PCinfo.get_CPU_info() PCinfo.get_disk_info() PCinfo.get_network_info() PCinfo.get_running_process()
運(yùn)行結(jié)果:
:::CPU info: [
{
"numOfLogicalProcessors": 2,
"cpuPercent": 27,
"Name": "Pentium(R) Dual-Core CPU E5300 @ 2.60GHz",
"CoreNum": 2,
"timestamp": "Tue, 29 May 2018 15:19:52",
"Serial Number": "BFEBFBFF0001067A"
}
]
:::Disk info: [
{
"Caption": "WDC WD5000AAKX-22ERMA0 ATA Device",
"Serial": "WD-WCC2EV784095",
"ID": 123456,
"size": "465G"
}
]
:::Network info: [
{
"ip": [
"192.168.3.37",
"fe80::d1a:8c98:b6d9:5f28"
],
"MAC": "E0:CB:4E:07:75:85"
}
]
:::Running process: [
{
"System Idle Process": 0
},
{
"System": 4
},
{
"smss.exe": 296
},
{
"csrss.exe": 428
},
{
"wininit.exe": 484
},
{
"csrss.exe": 504
},
{
"services.exe": 548
},
{
"winlogon.exe": 580
},
{
"lsass.exe": 588
},
{
"lsm.exe": 596
},
{
"svchost.exe": 732
},
{
"svchost.exe": 812
},
{
"svchost.exe": 872
},
{
"svchost.exe": 936
},
{
"svchost.exe": 996
},
{
"audiodg.exe": 1076
},
{
"svchost.exe": 1124
},
{
"ZhuDongFangYu.exe": 1272
},
{
"svchost.exe": 1300
},
{
"spoolsv.exe": 1556
},
{
"svchost.exe": 1584
},
{
"360bpsvc.exe": 1656
},
{
"AlibabaProtect.exe": 1680
},
{
"QQProtect.exe": 1800
},
{
"secbizsrv.exe": 1860
},
{
"TBSecSvc.exe": 1904
},
{
"httpd.exe": 2004
},
{
"mysqld.exe": 2040
},
{
"wwbizsrv.exe": 456
},
{
"taskhost.exe": 1376
},
{
"dwm.exe": 2140
},
{
"explorer.exe": 2156
},
{
"TaobaoProtect.exe": 2368
},
{
"360tray.exe": 2476
},
{
"tomcat6w.exe": 2500
},
{
"httpd.exe": 2676
},
{
"360sd.exe": 2712
},
{
"aliwssv.exe": 3084
},
{
"conhost.exe": 3096
},
{
"360bdoctor.exe": 3280
},
{
"baidupinyin.exe": 3376
},
{
"svchost.exe": 3420
},
{
"360rp.exe": 4008
},
{
"QQ.exe": 4136
},
{
"TXPlatform.exe": 4480
},
{
"360se.exe": 4624
},
{
"360se.exe": 4792
},
{
"wdswfsafe.exe": 4924
},
{
"360se.exe": 5916
},
{
"360se.exe": 4456
},
{
"360se.exe": 4604
},
{
"SoftMgrLite.exe": 2304
},
{
"360se.exe": 5612
},
{
"360se.exe": 2756
},
{
"hh.exe": 6752
},
{
"KMPlayer.exe": 7616
},
{
"chrome.exe": 6848
},
{
"chrome.exe": 7956
},
{
"chrome.exe": 7044
},
{
"chrome.exe": 6432
},
{
"chrome.exe": 4396
},
{
"chrome.exe": 5240
},
{
"360se.exe": 968
},
{
"TTPlayer.exe": 8636
},
{
"360se.exe": 7080
},
{
"chrome.exe": 8784
},
{
"360se.exe": 7148
},
{
"360se.exe": 8760
},
{
"360se.exe": 2604
},
{
"360se.exe": 4784
},
{
"360se.exe": 8804
},
{
"360se.exe": 7096
},
{
"360se.exe": 8900
},
{
"TrustedInstaller.exe": 5676
},
{
"360se.exe": 5232
},
{
"flashfxp.exe": 9356
},
{
"flashfxp.exe": 4416
},
{
"360se.exe": 9868
},
{
"360se.exe": 8816
},
{
"360se.exe": 6816
},
{
"eclipsePHP.exe": 11000
},
{
"javaw.exe": 9324
},
{
"360se.exe": 11112
},
{
"editplus.exe": 6748
},
{
"cmd.exe": 11740
},
{
"conhost.exe": 10532
},
{
"eclipse.exe": 10556
},
{
"python2.exe": 11772
},
{
"conhost.exe": 3676
},
{
"360se.exe": 9604
},
{
"360se.exe": 10656
},
{
"svchost.exe": 10888
},
{
"WmiPrvSE.exe": 11968
},
{
"WmiPrvSE.exe": 10988
},
{
"python2.exe": 10956
},
{
"conhost.exe": 10328
}
]
簡(jiǎn)單吧,附上wmi api說(shuō)明: https://msdn.microsoft.com/en-us/library/bg126473%28v=vs.85%29.aspx
補(bǔ)充:這里使用Python2.7平臺(tái)測(cè)試,可能會(huì)出現(xiàn)如下錯(cuò)誤:
1. no module named wmi 錯(cuò)誤
可使用pip命令解決:
pip install wmi
即可。
2. no module named win32com.client 錯(cuò)誤
本站下載pywin32-223-cp27-none-win32.whl 。
使用如下命令安裝:
pip install pywin32-223-cp27-none-win32.whl
即可。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python進(jìn)程與線程操作技巧總結(jié)》、《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- python 中Arduino串口傳輸數(shù)據(jù)到電腦并保存至excel表格
- Python使用itchat模塊實(shí)現(xiàn)簡(jiǎn)單的微信控制電腦功能示例
- python實(shí)現(xiàn)控制電腦鼠標(biāo)和鍵盤,登錄QQ的方法示例
- python輸出電腦上所有的串口名的方法
- python實(shí)現(xiàn)遠(yuǎn)程控制電腦
- Python兩臺(tái)電腦實(shí)現(xiàn)TCP通信的方法示例
- 使用python獲取電腦的磁盤信息方法
- python實(shí)現(xiàn)電腦自動(dòng)關(guān)機(jī)
- python通過(guò)移動(dòng)端訪問(wèn)查看電腦界面
相關(guān)文章
python實(shí)現(xiàn)動(dòng)態(tài)規(guī)劃算法的示例代碼
本文主要介紹了python實(shí)現(xiàn)動(dòng)態(tài)規(guī)劃算法的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Django 大文件下載實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Django 大文件下載實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Python3實(shí)現(xiàn)爬蟲爬取趕集網(wǎng)列表功能【基于request和BeautifulSoup模塊】
這篇文章主要介紹了Python3實(shí)現(xiàn)爬蟲爬取趕集網(wǎng)列表功能,結(jié)合實(shí)例形式分析了Python3基于request和BeautifulSoup模塊的網(wǎng)站頁(yè)面爬取相關(guān)操作技巧,需要的朋友可以參考下2018-12-12python實(shí)現(xiàn)在每個(gè)獨(dú)立進(jìn)程中運(yùn)行一個(gè)函數(shù)的方法
這篇文章主要介紹了python實(shí)現(xiàn)在每個(gè)獨(dú)立進(jìn)程中運(yùn)行一個(gè)函數(shù)的方法,涉及Python操作進(jìn)程的相關(guān)技巧,需要的朋友可以參考下2015-04-04Python如何用filter函數(shù)篩選數(shù)據(jù)
這篇文章主要介紹了Python如何用filter函數(shù)篩選數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Python 實(shí)現(xiàn) 貪吃蛇大作戰(zhàn) 代碼分享
本文給大家分享的是一個(gè)使用cocos2d-python游戲引擎庫(kù)制作出來(lái)的貪吃蛇大作戰(zhàn)的游戲代碼,基于Python 2.7 和 cocos2d 庫(kù),有需要的小伙伴可以參考下2016-09-09Flask框架運(yùn)用WTForms實(shí)現(xiàn)用戶注冊(cè)的示例詳解
WTForms 是用于web開發(fā)的靈活的表單驗(yàn)證和呈現(xiàn)庫(kù),它可以與您選擇的任何web框架和模板引擎一起工作,并支持?jǐn)?shù)據(jù)驗(yàn)證、CSRF保護(hù)、國(guó)際化等。本文將運(yùn)用WTForms實(shí)現(xiàn)用戶注冊(cè)功能,需要的可以參考一下2022-12-12Python無(wú)法安裝包的一種解決(Requirement already satisfied問(wèn)題)
這篇文章主要介紹了Python無(wú)法安裝包的一種解決(Requirement already satisfied問(wèn)題),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python如何使用print()函數(shù)輸出格式化字符串
Python中內(nèi)置的%操作符和format函數(shù),都可以用于格式化字符串,下面這篇文章主要給大家介紹了關(guān)于Python如何使用print()函數(shù)輸出格式化字符串的相關(guān)資料,需要的朋友可以參考下2021-08-08