本文实例讲述了python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法。分享给大家供大家参考。具体实现方法如下:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
import wmi 
import sys,time,platform 
def get_system_info(os): 
  \"\"\" 
  获取操作系统版本。 
  \"\"\" 
  print 
  print \"Operating system:\" 
  if os == \"Windows\": 
    c = wmi.WMI () 
    for sys in c.Win32_OperatingSystem(): 
      print \'\\t\' + \"Version :\\t%s\" % sys.Caption.encode(\"GBK\") 
      print \'\\t\' + \"Vernum :\\t%s\" % sys.BuildNumber 
def get_memory_info(os): 
  \"\"\" 
  获取物理内存和虚拟内存。 
  \"\"\" 
  print 
  print \"memory_info:\" 
  if os == \"Windows\": 
    c = wmi.WMI () 
    cs = c.Win32_ComputerSystem() 
    pfu = c.Win32_PageFileUsage() 
    MemTotal = int(cs[0].TotalPhysicalMemory)/1024/1024 
    print \'\\t\' + \"TotalPhysicalMemory :\" + \'\\t\' + str(MemTotal) + \"M\" 
    #tmpdict[\"MemFree\"] = int(os[0].FreePhysicalMemory)/1024 
    SwapTotal = int(pfu[0].AllocatedBaseSize) 
    print \'\\t\' + \"SwapTotal :\" + \'\\t\' + str(SwapTotal) + \"M\" 
    #tmpdict[\"SwapFree\"] = int(pfu[0].AllocatedBaseSize - pfu[0].CurrentUsage) 
def get_disk_info(os): 
  \"\"\" 
  获取物理磁盘信息。 
  \"\"\" 
  print 
  print \"disk_info:\" 
  if os == \"Windows\": 
    tmplist = [] 
    c = wmi.WMI () 
    for physical_disk in c.Win32_DiskDrive(): 
      if physical_disk.Size: 
        print \'\\t\' + str(physical_disk.Caption) + \' :\\t\' + str(long(physical_disk.Size)/1024/1024/1024) + \"G\" 
def get_cpu_info(os): 
  \"\"\" 
  获取CPU信息。 
  \"\"\" 
  print 
  print \"cpu_info:\" 
  if os == \"Windows\": 
    tmpdict = {} 
    tmpdict[\"CpuCores\"] = 0 
    c = wmi.WMI () 
    for cpu in c.Win32_Processor():       
      tmpdict[\"CpuType\"] = cpu.Name 
    try: 
      tmpdict[\"CpuCores\"] = cpu.NumberOfCores 
    except: 
      tmpdict[\"CpuCores\"] += 1 
      tmpdict[\"CpuClock\"] = cpu.MaxClockSpeed   
    print \'\\t\' + \'CpuType :\\t\' + str(tmpdict[\"CpuType\"]) 
    print \'\\t\' + \'CpuCores :\\t\' + str(tmpdict[\"CpuCores\"]) 
def get_network_info(os): 
  \"\"\" 
  获取网卡信息和当前TCP连接数。 
  \"\"\" 
  print 
  print \"network_info:\" 
  if os == \"Windows\": 
    tmplist = [] 
    c = wmi.WMI () 
    for interface in c.Win32_NetworkAdapterConfiguration (IPEnabled=1): 
        tmpdict = {} 
        tmpdict[\"Description\"] = interface.Description 
        tmpdict[\"IPAddress\"] = interface.IPAddress[0] 
        tmpdict[\"IPSubnet\"] = interface.IPSubnet[0] 
        tmpdict[\"MAC\"] = interface.MACAddress 
        tmplist.append(tmpdict) 
    for i in tmplist: 
      print \'\\t\' + i[\"Description\"] 
      print \'\\t\' + \'\\t\' + \"MAC :\" + \'\\t\' + i[\"MAC\"] 
      print \'\\t\' + \'\\t\' + \"IPAddress :\" + \'\\t\' + i[\"IPAddress\"] 
      print \'\\t\' + \'\\t\' + \"IPSubnet :\" + \'\\t\' + i[\"IPSubnet\"] 
    for interfacePerfTCP in c.Win32_PerfRawData_Tcpip_TCPv4(): 
        print \'\\t\' + \'TCP Connect :\\t\' + str(interfacePerfTCP.ConnectionsEstablished) 
if __name__ == \"__main__\": 
  os = platform.system() 
  get_system_info(os) 
  get_memory_info(os) 
  get_disk_info(os) 
  get_cpu_info(os) 
  get_network_info(os) 

希望本文所述对大家的Python程序设计有所帮助。