Python实现的读取电脑硬件信息功能示例
本文实例讲述了Python实现的读取电脑硬件信息功能。分享给大家供大家参考,具体如下:
上学那会,老师让我用java获取电脑硬件信息,CPU,硬盘,MAC等,那个时候感觉搞了好久。。。。。。
今天,用python试了一下,简单多了。分享一下:
首先安装wmi库,wmi是一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源。大多用户习惯于使用众多的图形化管理工具来管理Windows资源,在wmi之前这些工具都是通过Win32应用程序编程接口来访问和管理Windows资源的。大多数脚本语言都不能直接调用Win32API,wmiI的出现使得系统管理员可以通过一种简便的方法即利用常见的脚本语言实现常用的系统管理任务。好了,上代码吧
importwmi importtime importjson importwin32com classPCHardwork(object): globals s=wmi.WMI() defget_CPU_info(self): cpu=[] cp=s.Win32_Processor() foruincp: cpu.append( { "Name":u.Name, "SerialNumber":u.ProcessorId, "CoreNum":u.NumberOfCores, "numOfLogicalProcessors":u.NumberOfLogicalProcessors, "timestamp":time.strftime('%a,%d%b%Y%H:%M:%S',time.localtime()), "cpuPercent":u.loadPercentage } ) print":::CPUinfo:",json.dumps(cpu,True,indent=4) returncpu defget_disk_info(self): disk=[] forpdins.Win32_DiskDrive(): disk.append( { "Serial":s.Win32_PhysicalMedia()[0].SerialNumber.lstrip().rstrip(),#获取硬盘序列号,调用另外一个win32API "ID":123456, "Caption":pd.Caption, "size":str(int(float(pd.Size)/1024/1024/1024))+"G" } ) print":::Diskinfo:",json.dumps(disk,True,indent=4) returndisk defget_network_info(self): network=[] fornwins.Win32_NetworkAdapterConfiguration(IPEnabled=1): network.append( { "MAC":nw.MACAddress, "ip":nw.IPAddress } ) print":::Networkinfo:",json.dumps(network,True,indent=4) returnnetwork defget_running_process(self): process=[] forpins.Win32_Process(): process.append( { p.Name:p.ProcessId } ) print":::Runningprocess:",json.dumps(process,True,indent=4) returnprocess #运行测试: PCinfo=PCHardwork() PCinfo.get_CPU_info() PCinfo.get_disk_info() PCinfo.get_network_info() PCinfo.get_running_process()
运行结果:
:::CPUinfo:[
{
"numOfLogicalProcessors":2,
"cpuPercent":27,
"Name":"Pentium(R)Dual-Core CPU E5300 @2.60GHz",
"CoreNum":2,
"timestamp":"Tue,29May201815:19:52",
"SerialNumber":"BFEBFBFF0001067A"
}
]
:::Diskinfo:[
{
"Caption":"WDCWD5000AAKX-22ERMA0ATADevice",
"Serial":"WD-WCC2EV784095",
"ID":123456,
"size":"465G"
}
]
:::Networkinfo:[
{
"ip":[
"192.168.3.37",
"fe80::d1a:8c98:b6d9:5f28"
],
"MAC":"E0:CB:4E:07:75:85"
}
]
:::Runningprocess:[
{
"SystemIdleProcess":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
}
]
简单吧,附上wmiapi说明:https://msdn.microsoft.com/en-us/library/bg126473%28v=vs.85%29.aspx
补充:这里使用Python2.7平台测试,可能会出现如下错误:
1.nomodulenamedwmi错误
可使用pip命令解决:
pipinstallwmi
即可。
2.nomodulenamedwin32com.client错误
本站下载pywin32-223-cp27-none-win32.whl。
使用如下命令安装:
pipinstallpywin32-223-cp27-none-win32.whl
即可。
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《PythonSocket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。