CPU の使用状況を定期的に追跡する小さなコードがあります。どういうわけか、ファイルを作成しようとすると (「wb」または「w」モード)、ファイルは作成されますが、空です。なぜそうなのか、何か考えはありますか?
ファイルハンドラなし:
import subprocess
import os
MESSAGE = "mpstat -P ALL | awk '{print $4}'"
SLEEP = "sleep 1"
cmds = [MESSAGE, SLEEP]
def runCommands(commands = cmds):
count =0
while True:
for cmd in cmds:
count+=1
subprocess.call(cmd, shell = True)
runCommands()
ファイル ハンドラーを使用する場合:
import subprocess
import os
MESSAGE = "mpstat -P ALL | awk '{print $4}'"
SLEEP = "sleep 1"
cmds = [MESSAGE, SLEEP]
def runCommands(commands = cmds):
count =0
while True:
for cmd in cmds:
count+=1
with open('cpu_usage.txt', 'w')as f:
subprocess.call(cmd, stdout = f, shell = True)
runCommands()
mpstat は標準出力を提供します (標準エラーではありません)。目的は、Python を使用して毎秒 CPU とメモリの使用量を収集し、アプリケーションに埋め込んでデータを収集し、同じものをグラフィカルに出力することです。この点で psutil が優れたフレームワークであることは知っていますが、あまり遊んでいない場合は. また、最終的に1秒あたりのメモリとCPUの使用を含むグラフィカル出力があるという事実を考えると、私の問題を解決することもできます。
最終的に、次の形式の出力を探しています。
%CPU %MEM
.. ..
.. ..
.. ..
そして最終的には、CPU に対する時間とメモリに対する時間で十分です。CPU値を取得することで、この問題への一歩を踏み出しました。ps aux
私が望むものと同様の出力が得られますが、私が必要とすることを行うための良いコマンドではないようです。アイデア/考え/提案。