web-dev-qa-db-ja.com

Python-ウィンドウでプロセス名、CPU、メモリ使用量、ピークメモリ使用量を取得

すべてのプロセス名、CPU、メモリ使用量、ピークメモリ使用量のリストを取得したいのですが。私はctypesを使用できることを望んでいました。しかし、私は他のオプションを聞いてうれしいです。御時間ありがとうございます。

18
Daniel

psutil を使用できます。

たとえば、プロセス名のリストを取得するには:

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

CPUの使用については psutil.cpu_percent またはpsutil.cpu_times。メモリ使用量に関する情報については、 psutil.virtual_memory

Psutilは、Linux、OS X、Windows、Solaris、FreeBSDおよびpython 2.4から3.3で動作します。

36
Bakuriu

Windowsでwmicを使用するのが好きです。コマンドラインから実行できるため、Pythonから実行できます。

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

wmicを使用すると、プロセス、CPU、およびメモリ情報を簡単に取得できます。 wmic cpuwmic process、およびwmic memphysicalを使用してください。 wmic <alias> get <attribute>を使用して特定の属性を除外することもできます。また、wmic /?を使用してすべてのコマンドのリストを取得できます。お役に立てば幸いです!

WMICの公式ドキュメントはこちらで確認できます。 http://technet.Microsoft.com/en-us/library/bb742610.aspx

3
Kevin D

このPython 3.3コードは、UACを使用したWindows 7で機能します。

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