使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
例子一: Python用WMI模块获取windowns系统的硬件信息:硬盘分区、使用情况,内存大小,CPU型号,当前运行的进程,自启动程序及位置,系统的版本等信息。 复制代码 代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import wmi import os import sys import platform import time def sys_version(): c = wmi.WMI () #获取操作系统版本 for sys in c.Win32_OperatingSystem(): print "Version:%s" % sys.Caption.encode("UTF8"),"Vernum:%s" % sys.BuildNumber print sys.OSArchitecture.encode("UTF8")#系统是32位还是64位的 print sys.NumberOfProcesses #当前系统运行的进程总数 def cpu_mem(): c = wmi.WMI () #CPU类型和内存 for processor in c.Win32_Processor(): #print "Processor ID: %s" % processor.DeviceID print "Process Name: %s" % processor.Name.strip() for Memory in c.Win32_PhysicalMemory(): print "Memory Capacity: %.fMB" %(int(Memory.Capacity)/1048576) def cpu_use(): #5s取一次CPU的使用率 c = wmi.WMI() while True: for cpu in c.Win32_Processor(): timestamp = time.strftime('%a,%d %b %Y %H:%M:%S',time.localtime()) print '%s | Utilization: %s: %d %%' % (timestamp,cpu.DeviceID,cpu.LoadPercentage) time.sleep(5) def disk(): c = wmi.WMI () #获取硬盘分区 for physical_disk in c.Win32_DiskDrive (): for partition in physical_disk.associators ("Win32_DiskDriveToDiskPartition"): for logical_disk in partition.associators ("Win32_LogicalDiskToPartition"): print physical_disk.Caption.encode("UTF8"),partition.Caption.encode("UTF8"),logical_disk.Caption #获取硬盘使用百分情况 for disk in c.Win32_LogicalDisk (DriveType=3): print disk.Caption,"%0.2f%% free" % (100.0 * long (disk.FreeSpace) / long (disk.Size)) def network(): c = wmi.WMI () #获取MAC和IP地址 for interface in c.Win32_NetworkAdapterConfiguration (IPEnabled=1): print "MAC: %s" % interface.MACAddress for ip_address in interface.IPAddress: print "ip_add: %s" % ip_address #获取自启动程序的位置 for s in c.Win32_StartupCommand (): print "[%s] %s <%s>" % (s.Location.encode("UTF8"),s.Caption.encode("UTF8"),s.Command.encode("UTF8")) #获取当前运行的进程 for process in c.Win32_Process (): print process.ProcessId,process.Name def main(): sys_version() #cpu_mem() #disk() #network() #cpu_use() if __name__ == '__main__': main() print platform.system() print platform.release() print platform.version() print platform.platform() print platform.machine() 例子二: 由于我用到的不多,所以只获取的CPU、内存和硬盘,如果需要其它资源,请参照msdn。 复制代码 代码如下: import os import win32api import win32con import wmi import time def getSysInfo(wmiService = None): if __name__ == '__main__': 采用的wmi模块获取的,由于wmi初始化时占用系统资源太高,所以如果需要循环获取,请在循环体外面把wmi对象初始化好,然后传入函数里面,这样就不会产生CPU资源过高的情况。 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |