Python - get process names,CPU,Mem Usage and Peak Mem Usage in windows

60,545

Solution 1

You can use psutil.

For example, to obtain the list of process names:

process_names = [proc.name() for proc in psutil.process_iter()]

For info about the CPU use psutil.cpu_percent or psutil.cpu_times. For info about memory usage use psutil.virtual_memory.

Note that psutil works with Linux, OS X, Windows, Solaris and FreeBSD and with python 2.4 through 3.3.

Solution 2

I like using wmic on Windows. You can run it from the command-line, so you can run it from Python.

from subprocess import Popen,PIPE
proc = Popen('wmic cpu',stdout=PIPE, stderr=PIPE)
print str(proc.communicate())

With wmic you can get processes, cpu, and memory info easily. Just use wmic cpu, wmic process, and wmic memphysical. You can also filter out certain attributes by using wmic <alias> get <attribute>. And you can get a list of all commands with wmic /?. Hope that helps!

You can check out the official documentation for WMIC here: http://technet.microsoft.com/en-us/library/bb742610.aspx

Solution 3

This Python 3.3 code works for Windows 7 with UAC all the way down.

import psutil
import time

def processcheck(seekitem):
    plist = psutil.get_process_list()
    str1=" ".join(str(x) for x in plist)
    if seekitem in str1:
        print ("Requested process is running")   

processcheck("System")
Share:
60,545

Related videos on Youtube

Daniel
Author by

Daniel

Updated on September 01, 2020

Comments

  • Daniel
    Daniel over 3 years

    I am wanting to get a list of all the process names, CPU, Mem Usage and Peak Mem Usage. I was hoping I could use ctypes. but I am happy to hear any other options. Thanks for your time.

    • JBernardo
      JBernardo about 11 years
      You can't do any better than psutil
    • ren
      ren over 9 years
      In windows your best bet probably would be performance counters.
  • Daniel
    Daniel about 11 years
    Thanks, that would be great but it will need to be ran as administrator, is there a way to run it as admin before using it in the command-Line?
  • chester89
    chester89 over 7 years
    can psutil get network stats per process? I googled and read docs for about an hour, haven't found anything
  • Bakuriu
    Bakuriu over 7 years
    @chester89 This is unrelated to this question. Please try to search SO for psutil questions about network usage, and after that, if you haven't found a satisfying answer, please go ahead and ask a new question regarding it.In any case you should check Process.connections.
  • Ravi Shanker Reddy
    Ravi Shanker Reddy over 6 years
    How to know the bandwidth it's using via this module