web-dev-qa-db-fra.com

Python - obtenir le nom du processus, le CPU, l'utilisation de Mem et l'utilisation maximale de la mémoire dans les fenêtres

Je veux obtenir une liste de tous les noms de processus, CPU, utilisation Mem et utilisation Peak Mem. J'espérais pouvoir utiliser des ctypes. mais je suis heureux d'entendre d'autres options. Merci pour votre temps.

18
Daniel

Vous pouvez utiliser psutil .

Par exemple, pour obtenir la liste des noms de processus:

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

Pour plus d'informations sur l'utilisation du processeur psutil.cpu_percent ou psutil.cpu_times. Pour plus d'informations sur l'utilisation de la mémoire, utilisez psutil.virtual_memory .

Notez que psutil fonctionne avec Linux, OS X, Windows, Solaris et FreeBSD et avec python 2.4 à 3.3.

36
Bakuriu

J'aime utiliser wmic sous Windows. Vous pouvez l'exécuter à partir de la ligne de commande, vous pouvez donc l'exécuter à partir de Python.

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

Avec wmic, vous pouvez facilement obtenir des informations sur les processus, le processeur et la mémoire. Utilisez simplement wmic cpu, wmic process, et wmic memphysical. Vous pouvez également filtrer certains attributs en utilisant wmic <alias> get <attribute>. Et vous pouvez obtenir une liste de toutes les commandes avec wmic /?. J'espère que cela pourra aider!

Vous pouvez consulter la documentation officielle de WMIC ici: http://technet.Microsoft.com/en-us/library/bb742610.aspx

3
Kevin D

Ce code Python 3.3 fonctionne pour Windows 7 avec UAC jusqu'en bas).

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")
1
Mark