本文實例講述了Python實現的讀取電腦硬件信息功能。分享給大家供大家參考,具體如下:
上學那會,老師讓我用java獲取電腦硬件信息,CPU, 硬盤,MAC等,那個時候感覺搞了好久。。。。。。
今天,用python試了一下,簡單多了。分享一下:
首先安裝wmi庫,wmi是一種規范和基礎結構,通過它可以訪問、配置、管理和監視幾乎所有的Windows資源。大多用戶習慣于使用眾多的圖形化管理工 具來管理Windows資源,在wmi之前這些工具都是通過 Win32應用程序編程接口來訪問和管理Windows資源的。大多數腳本 語言都不能直接調用Win32 API,wmiI的出現使得系統管理員可以通過一種簡便的方法即利用常見的腳本語言實現常用的系統管理任務。好了,上代碼吧
import wmiimport timeimport jsonimport win32comclass 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(), # 獲取硬盤序列號,調用另外一個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#運行測試:PCinfo = PCHardwork()PCinfo.get_CPU_info()PCinfo.get_disk_info()PCinfo.get_network_info()PCinfo.get_running_process()
運行結果:
:::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"
新聞熱點
疑難解答