python - wmi模块学习(windwos硬件信息获取)
获取windows操作系统的硬件信息
#!/usr/bin/env python # -*- coding: utf-8 -*- # http://www.cnblogs.com/liu-ke/ import wmi import os import sys import platform import time #还需要安装一个模块pywin32,要不会报错 # # 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) # 当前系统运行的进程总数 # # # # c = wmi.WMI() # # for i in c.classes: # # if "operatingsystem" in i.lower(): # # print (i) # # print(c.__doc__) # # # 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 * len(disk.FreeSpace) / len(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) print("IPV4地址为: " + interface.IPAddress[0]) print("IPV6地址为: " + interface.IPAddress[1]) # # 获取自启动程序的位置 # 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())
既要脚踏实地,也需仰望天空