Python: 需要使用 bash 一行

标签 python linux cpu

我正在尝试编写一个脚本来帮助我的公司进行一些调查。我无法在系统上安装任何额外的软件包,我需要能够以百分比的形式获取当前处理器总负载。

到目前为止,我找不到任何允许这样做的 native python 模块,所以我尝试使用 bash 命令: ps aux|awk 'NR > 0{s +=$3};END{print "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: 需要使用 bash 一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17002699/

相关文章:

Python - 核心速度

python - 在 Python 中,当每个选项可以有多个参数时,是否有更好的方法来处理命令行选项

python - 如何在C++中将Python字符串转换为其转义版本?

Python计算器: Key Error

x86 - 当线程可能会切换内核时,如何正确使用 TSX-NI(HLE 和 RTM)?

linux - Ada 程序在 Linux 中有效,但在 GPS Windows 10 中无效

python - 如何在 Python 中同步日志记录和打印?

linux - Gloox: "onConnect"不叫 Linux Mint 13

linux - ORA-24247 Linux 上 UTL_HTTP 上的 Oracle ACL

php - 需要将命令行 (Linux) CURL 转换为具有请求数据负载 ("-d "的 PHP CURL)