手机
当前位置:查字典教程网 >脚本专栏 >python >使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
摘要:例子一:Python用WMI模块获取windowns系统的硬件信息:硬盘分区、使用情况,内存大小,CPU型号,当前运行的进程,自启动程序及位...

例子一:

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

print

#获取自启动程序的位置

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):

result = {}

if wmiService == None:

wmiService = wmi.WMI()

# cpu

for cpu in wmiService.Win32_Processor():

timestamp = time.strftime('%a, %d %b %Y %H:%M:%S', time.localtime())

result['cpuPercent'] = cpu.loadPercentage

# memory

cs = wmiService.Win32_ComputerSystem()

os = wmiService.Win32_OperatingSystem()

result['memTotal'] = int(int(cs[0].TotalPhysicalMemory)/1024/1024)

result['memFree'] = int(int(os[0].FreePhysicalMemory)/1024)

#disk

result['diskTotal'] = 0

result['diskFree'] = 0

for disk in wmiService.Win32_LogicalDisk(DriveType=3):

result['diskTotal'] += int(disk.Size)

result['diskFree'] += int(disk.FreeSpace)

result['diskTotal'] = int(result['diskTotal']/1024/1024)

result['diskFree'] = int(result['diskFree']/1024/1024)

return result

if __name__ == '__main__':

wmiService = wmi.WMI()

while True:

print getSysInfo(wmiService)

time.sleep(3)

采用的wmi模块获取的,由于wmi初始化时占用系统资源太高,所以如果需要循环获取,请在循环体外面把wmi对象初始化好,然后传入函数里面,这样就不会产生CPU资源过高的情况。

【使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子】相关文章:

使用python实现拉钩网上的FizzBuzzWhizz问题示例

python 获取本机ip地址的两个方法

Python获取脚本所在目录的正确方法

python判断windows隐藏文件的方法

python使用PyFetion来发送短信的例子

python中使用OpenCV进行人脸检测的例子

Python 用户登录验证的小例子

python获取网页状态码示例

python中使用sys模板和logging模块获取行号和函数名的方法

python使用ctypes模块调用windowsapi获取系统版本示例

精品推荐
分类导航