すべてのプロセス名、CPU、メモリ使用量、ピークメモリ使用量のリストを取得したいのですが。私はctypesを使用できることを望んでいました。しかし、私は他のオプションを聞いてうれしいです。御時間ありがとうございます。
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で動作します。
Windowsでwmic
を使用するのが好きです。コマンドラインから実行できるため、Pythonから実行できます。
from subprocess import Popen,PIPE
proc = Popen('wmic cpu',stdout=PIPE, stderr=PIPE)
print str(proc.communicate())
wmic
を使用すると、プロセス、CPU、およびメモリ情報を簡単に取得できます。 wmic cpu
、wmic process
、およびwmic memphysical
を使用してください。 wmic <alias> get <attribute>
を使用して特定の属性を除外することもできます。また、wmic /?
を使用してすべてのコマンドのリストを取得できます。お役に立てば幸いです!
WMICの公式ドキュメントはこちらで確認できます。 http://technet.Microsoft.com/en-us/library/bb742610.aspx
この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")