Python - get process names,CPU,Mem Usage and Peak Mem Usage in windows
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")
Related videos on Youtube
Daniel
Updated on September 01, 2020Comments
-
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 about 11 yearsYou can't do any better than psutil
-
ren over 9 yearsIn windows your best bet probably would be performance counters.
-
-
Daniel about 11 yearsThanks, 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 over 7 yearscan psutil get network stats per process? I googled and read docs for about an hour, haven't found anything
-
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 over 6 yearsHow to know the bandwidth it's using via this module