2017-12-08 15 views
0

私はpythonを使ってベンチマークユーティリティを書いています。私は私のpythonプログラムがプログラムを実行し、その最大リソース使用量を得るだけでなく、出力をキャプチャしたいと思います。次のコードはコマンドを実行し、1秒に1回メモリとプロセッサの使用量を取得しますが、pythonの出力にもどのようにアクセスしますか?ここに私の現在の設定は次のとおりです。プロセスを監視し、Pythonで出力をキャプチャ

pid = psutil.Popen(cmd_args, shell=False, stdout=subprocess.PIPE) 

p = psutil.Process(pid=pid.pid) 
x = 0 
cpu_util = [] 
mem_util = [] 

while p.status() != "zombie": 
    if x % 10 == 0: 
     with p.oneshot(): 
      cpu_util.append(p.cpu_percent()) 
      mem_util.append(p.memory_percent()) 
    x += 1 
    time.sleep(0.1) 

max_cpu_load = max(cpu_util) 
max_mem_load = max(mem_util) 

#What I would like to do, but don't understand 
print(pid.stdout) 
+0

出力をファイルにエクスポートしますか? 「出力を得る」とはどういう意味ですか? –

+0

これはhttps://stackoverflow.com/questions/38630421/how-to-execute-shell-command-and-stream-output-with-python-and-flask-upon-http-r soの質問に似ています。そこに答えがあるかもしれません。 –

+0

@YuZhang、ありがとう、私は私の質問を更新しました。私は私のpythonプログラムの中でstdoutとstderrにアクセスしたいと思います。 – mcragun

答えて

0

あなたがUnixのボックスを持っていると仮定すると、あなたは、関連する標準入力、標準出力のファイルディスクリプタを取得することができ、...、あなたはこれらのストリーム上の活動を監視するselect.select機能を使用することができます。

​​

関連する問題