2013-05-01 18 views
14

すべてのプロセス名、CPU、Mem Usage、およびPeak Mem Usageのリストを取得したいと考えています。私はctypesを使うことができると思っていました。私は他のオプションを聞いてうれしいです。御時間ありがとうございます。Python - プロセス名、CPU、Mem Usage、Peak Mem Usageをウィンドウで取得する

+1

おそらく、パフォーマンスカウンタになり、Windowsの – JBernardo

+0

あなたの最善の策[psutil](http://code.google.com/p/psutil/)よりも良く行うことはできません。 – ren

答えて

30

。 CPUの使用psutil.cpu_percentまたはpsutil.cpu_timesに関する情報については

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

:たとえば

は、プロセス名のリストを取得します。 メモリ使用量についてはpsutil.virtual_memoryをご利用ください。

psutilはLinux、OS X、Windows、Solaris、FreeBSD、そしてPython 2.4から3.3で動作することに注意してください。

+0

psutilはプロセスごとにネットワーク統計**を取得できますか?私はグーグルで約1時間ドキュメントを読んで、何も見つけられていません – chester89

+0

@ chester89これはこの質問には関係ありません。あなたの満足度の高い答えが見つからない場合は、ネットワークの使用状況に関するpsutilの質問を探してみてください。それでは、新しい質問をしてください。どんな場合でも、['Process.connections'] (https://pythonhosted.org/psutil/#psutil.Process.connections)。 – Bakuriu

+0

このモジュールを介して使用している帯域幅を知る方法 –

3

私はwmicをWindowsで使用するのが好きです。コマンドラインから実行できるので、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のための公式ドキュメントをチェックアウトすることができます:あなたはpsutilを使用することができますhttp://technet.microsoft.com/en-us/library/bb742610.aspx

+0

ありがとう、それは素晴らしいですが、それは管理者として実行する必要があります、コマンドラインで使用する前に管理者としてそれを実行する方法はありますか? – Daniel

1

このPython 3.3のコードは、Windows 7のすべての方法でUACを使用できます。

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