使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子_python

例子一:

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资源过高的情况。

时间: 2016-04-15

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

脚本-linux获取CPU内存占用信息

问题描述 linux获取CPU内存占用信息 想弄个脚本定时记录,linux 占用最高CPU 内存的进程. 生成友好阅读的日志,或者将查到的信息追加到日志文件中也行. 然后放到crontab里去执行. 但是有个前提,不使用ps命令. 网上找了一堆,可以使用这个方式,但是我不能使用PS命令,请问有什么办法吗: linux下获取占用 CPU 资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linu

使用.NET FrameWork获取CPU,内存使用率以及磁盘空间

原文:使用.NET FrameWork获取CPU,内存使用率以及磁盘空间       在以前,我们想获取CPU,内存等信息就不得不借助win32 API来实现.但现在,.NET FrameWork已经把这些API封装到.NET类库中了,所以我们可以借助.NET类库很轻松的获取这些信息.首先,介绍几个要用到的类:      PerformanceCounter:表示windows NT性能计数器组件      ComputerInfo:提供用于获取与计算机内存,已加载程序集,名称和操作系统有关信息

linux系统使用python获取cpu信息脚本分享_python

linux系统使用python获取cpu信息脚本分享 复制代码 代码如下: #!/usr/bin/env Pythonfrom __future__ import print_functionfrom collections import OrderedDictimport pprint def CPUinfo():    ''' Return the information in /proc/CPUinfo    as a dictionary in the following format:

使用python获取CPU和内存信息的思路与实现(linux系统)_python

大家都知道,linux里一切皆为文件,在linux/unix的根目录下,有个/proc目录,这个/proc 是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做"/proc"),这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,在运行中(on the fly)改变设置(通过改变内核参数).与其他文件系统不同,/proc 存在于内存而不是硬盘中.proc 文件系统提供的信息如下: •进程信息:系统中的任何一个进程,在 proc 的子目录中都有一个同名的

用C#获取CPU编号、硬盘编号等系统有关环境、属性

如果利用C#获取系统有关环境和属性,这个也是在网上问得比较多的问题,不过大部分只有提问没有回答,最近正好想做有关方面的东西,整理了一下,提供给大家,希望能给大家提供参考意见: 首先需要定义几个结构(struct) ,便于DllImport作为返回参数调用.以下是代码: CpuInfo.cs using System; using System.Configuration; using System.Runtime.InteropServices; /**//** * LayoutKind.Aut

Python中使用glob和rmtree删除目录子目录及所有文件的例子_python

一.batch与shell中 目录及文件: 复制代码 代码如下: C:\TESTFOLDER\TEST ├─Test2 └─Test3         test.txt 删除目录及其下的所有文件: 复制代码 代码如下: rmdir /S /Q c:\TestFolder\test 删除所有目录下的文件,但是目录结构不能被删除: 复制代码 代码如下: del /F /S /Q c:\TestFolder\test\* Linux类似的命令为: 复制代码 代码如下: rm /rf /home/aaa

python获取当前计算机cpu数量的方法_python

本文实例讲述了python获取当前计算机cpu数量的方法.分享给大家供大家参考.具体分析如下: 这里实际上返回的是计算机的cpu核心数,比如cpu是双核的,则返回2,如果双四核cpu,则返回8 from multiprocessing import cpu_count print(cpu_count()) 本机是四核电脑,返回结果:4 希望本文所述对大家的Python程序设计有所帮助. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索

如何开发获取当前计算机cpu,内存,硬盘,进程,网络流量等使用率或传输情况

问题描述 如何开发获取当前计算机cpu,内存,硬盘,进程,网络流量等使用率或传输情况 如何开发获取当前计算机cpu,内存,硬盘,进程,网络流量等使用率或传输情况,参考什么书籍或知识点! 解决方案 http://download.csdn.net/detail/ww516617119/7178777 解决方案二: google wmi 性能计数器 <你用的语言> 结果就有了 解决方案三: 楼上这个连接有点厉害,我觉的吧得深入了解win32 sdk,学的快的话,还是调用别人的库 解决方案四: WM

C/C++获取Windows系统CPU和内存及硬盘使用情况

//1.获取Windows系统内存使用率   [cpp] view plain copy   //windows 内存 使用率   DWORD getWin_MemUsage(){       MEMORYSTATUS ms;       ::GlobalMemoryStatus(&ms);       return ms.dwMemoryLoad;   }       //2.获取windowsCPU使用率   [cpp] view plain copy   __int64 CompareFi