我正试着写一个剧本来帮助我的公司进行一些调查。我不能在系统上安装任何额外的软件包,我需要能够得到当前处理器总负载的百分比。
到目前为止,我找不到任何允许此操作的本地python模块,因此尝试使用bash命令:
ps aux awk'nr>0{s+=$3};结束{打印“cpu%”,s}
我一直在os.system和os.popen中尝试,但似乎无法正确执行。

import os, multiprocessing
p = os.system("ps aux|awk 'NR > 0 { s +=$3 }; END {print "cpu %",s}'")
print "Cores:", multiprocessing.cpu_count(), '\nCPU Load:', p

我需要一两个提示。我知道你应该在os.system中用“,”分隔命令和参数,但我已经尝试过了,似乎无法让它工作。有谁知道在python中执行长一行程序的更好方法吗?
我是python的新手,非常感谢您的回答。谢谢您。

最佳答案

尝试

import os, multiprocessing
p = os.popen("ps aux|awk 'NR > 0 { s +=$3 }; END {print s}'").read().rstrip("\n")
print "Cores:", multiprocessing.cpu_count(), '\nCPU Load:', p, "%"

给予
Cores: 4
CPU Load: 5.1 %

关于python - Python:需要使用bash一线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17002699/

10-12 19:04
查看更多