Python读取CPU占用

作者:AI助手 日期:2021年11月2日


引言

计算机是现代社会不可或缺的工具,而CPU是计算机的核心组件之一。了解CPU的运行状态和占用情况对于优化计算机性能和诊断问题非常重要。本文将介绍如何使用Python读取CPU的占用情况,并提供相应的代码示例。

CPU占用率的概念

CPU占用率是指CPU在某个时间段内被使用的百分比。通常,CPU占用率越高,表示CPU正在执行更多的任务,系统的负载也会更高。对于计算机性能来说,合理地控制CPU占用率非常重要。

如何读取CPU占用率

Python提供了一些库和方法来读取CPU占用率。下面将介绍两种常用的方法。

方法一:使用psutil库

[psutil](

  1. 安装psutil库:在终端中运行以下命令安装psutil库。
pip install psutil
  1. 导入psutil库:在Python脚本中导入psutil库。
import psutil
  1. 读取CPU占用率:使用psutil库的cpu_percent()方法可以读取CPU的占用率。
cpu_percent = psutil.cpu_percent(interval=1)

以上代码中,interval参数表示采样的时间间隔,单位为秒。这里设置为1秒,即每秒读取一次CPU占用率。

方法二:使用top命令

在Linux系统中,可以使用top命令来查看系统的进程和资源使用情况,包括CPU占用率。通过Python脚本执行top命令并解析输出结果,就可以获取CPU占用率。

下面是一个使用subprocess模块执行top命令并读取CPU占用率的示例代码:

import subprocess

def get_cpu_percent():
    result = subprocess.run(['top', '-b', '-n', '1'], capture_output=True, text=True)
    output = result.stdout

    cpu_line = [line for line in output.split('\n') if line.startswith('%Cpu(s):')][0]
    cpu_percent = float(cpu_line.split()[1])

    return cpu_percent

cpu_percent = get_cpu_percent()

以上代码中,subprocess.run()方法用于执行外部命令,并返回命令的执行结果。capture_output=True参数用于捕获输出结果,text=True参数用于将输出结果转换为字符串类型。接着,通过解析输出结果,可以获取到CPU占用率所在的行,并提取出占用率的数值。

示例代码

下面是使用psutil库和top命令分别读取CPU占用率的示例代码。

使用psutil库

import psutil

def get_cpu_percent():
    cpu_percent = psutil.cpu_percent(interval=1)
    return cpu_percent

cpu_percent = get_cpu_percent()
print("当前CPU占用率:{}%".format(cpu_percent))

使用top命令

import subprocess

def get_cpu_percent():
    result = subprocess.run(['top', '-b', '-n', '1'], capture_output=True, text=True)
    output = result.stdout

    cpu_line = [line for line in output.split('\n') if line.startswith('%Cpu(s):')][0]
    cpu_percent = float(cpu_line.split()[1])

    return cpu_percent

cpu_percent = get_cpu_percent()
print("当前CPU占用率:{}%".format(cpu_percent))

结论

本文介绍了如何使用Python读取CPU占用率,并提供了使用psutil库和top命令的示例代码。通过读取CPU占用率,可以更好地了解计算机的运行状态,优化系统性能和解决问题。希望本文对您有所帮助。

参考文献:

  • [psutil documentation](
  • [Python subprocess