HOWTO · Python

在 Python 中获取 CPU 使用率

本教程演示如何在 Python 中获取操作系统的当前 CPU 使用率。了解多种方法,包括使用 psutil 库和执行 shell 命令,以有效监控 CPU 性能。探索实用的代码示例和详细说明,提升您的 Python 技能并优化系统性能。

本页内容

在当今的数字时代,了解系统性能对开发人员和系统管理员都至关重要。其中一个经常受到关注的关键指标就是 CPU 使用率。无论您是在优化 Python 应用程序,还是监控系统健康状态,知道如何获取 CPU 使用率都可能非常有价值。

本教程将引导您了解几种使用 Python 获取操作系统当前 CPU 使用率的方法。读完本文后,您将扎实掌握如何有效实现这些技术,从而实时监控 CPU 性能。让我们开始吧!

方法 1:使用 psutil 库

在 Python 中获取 CPU 使用率最受欢迎的方法之一是使用 psutil 库。这个库是一个强大的工具,提供检索系统使用率信息(包括 CPU、内存、磁盘和网络)的接口。首先,您需要安装 psutil。您可以使用 pip 来安装:

pip install psutil

安装完成后,您可以使用以下代码来获取 CPU 使用率:

import psutil

cpu_usage = psutil.cpu_percent(interval=1)
print(f"Current CPU Usage: {cpu_usage}%")

输出:

Current CPU Usage: 15.0%

这段代码片段导入 psutil 库并调用 cpu_percent 方法。interval 参数指定在计算 CPU 使用率之前等待的时间(以秒为单位)。在本例中,它会等待一秒,然后返回已使用的 CPU 百分比。这种方法简单直接,并提供实时数据,是性能监控的绝佳选择。

方法 2:使用 os 库

在 Python 中获取 CPU 使用率的另一种方法是使用内置的 os 库。虽然它可能不如 psutil 全面,但仍可提供 CPU 使用率的基本信息。做法如下:

import os

cpu_usage = os.popen("wmic cpu get loadpercentage").read()
print(f"Current CPU Usage: {cpu_usage.strip()}")

输出:

Current CPU Usage: 15

在这段代码中,我们使用 os.popen() 函数执行一个 shell 命令,检索 Windows 系统上的 CPU 负载百分比。命令 wmic cpu get loadpercentage 会获取当前的 CPU 负载。read() 方法捕获输出,然后将其打印出来。请注意,这种方法与平台相关,主要在 Windows 上运行。如果您使用的是类 Unix 系统,可能需要使用不同的命令。

方法 3:使用 subprocess 模块

如果您想更精细地控制 shell 命令的执行和输出捕获,subprocess 模块是一个绝佳选择。这种方法可以在不同的操作系统上使用,用途广泛。使用 subprocess 获取 CPU 使用率的做法如下:

import subprocess

cpu_usage = subprocess.check_output("top -bn1 | grep 'Cpu(s)'", shell=True).decode('utf-8')
print(f"Current CPU Usage: {cpu_usage.split()[1]}")

输出:

Current CPU Usage: 15.0

在本例中,我们使用 subprocess.check_output() 执行 top 命令,该命令提供系统进程的动态实时视图。-bn1 标志告诉命令以批处理模式运行且只输出一次。然后,我们搜索包含 ‘Cpu(s)’ 的那一行,并将输出解码为字符串格式。最后,我们拆分字符串以提取 CPU 使用率百分比。这种方法功能强大且灵活,可让您根据需要自定义命令。

方法 4:使用 platform 模块

如果您想要一种能在不同平台上无缝运行的方法,platform 模块可以与其他方法结合使用,以确保兼容性。根据操作系统获取 CPU 使用率的做法如下:

import platform
import psutil

if platform.system() == "Windows":
    cpu_usage = psutil.cpu_percent(interval=1)
elif platform.system() == "Linux":
    cpu_usage = psutil.cpu_percent(interval=1)
else:
    cpu_usage = "Unsupported OS"

print(f"Current CPU Usage: {cpu_usage}")

输出:

Current CPU Usage: 15.0%

在这段代码中,我们先使用 platform.system() 检查操作系统。根据是 Windows 还是 Linux,我们调用 psutil.cpu_percent() 来获取 CPU 使用率。如果操作系统不受支持,我们返回一条指出这一点的消息。这种方法对于需要在各种环境中运行的应用程序特别有用,可确保根据操作系统应用正确的方法。

结论

在本文中,我们探讨了在 Python 中获取当前 CPU 使用率的各种方法。从使用 psutil 库,到使用 os 和 subprocess 执行 shell 命令,每种方法都有其优点和适用场景。根据您的具体需求,您可以选择最适合自己需要的方法。监控 CPU 使用率对于优化性能、确保应用程序顺利运行至关重要。现在您已掌握这些技术,便可以在 Python 项目中有效跟踪 CPU 性能。

常见问题

  1. 在 Python 中监控 CPU 使用率的最佳库是什么?
    psutil 库因其全面的功能和易用性,被广泛认为是最佳选择。

  2. 我可以在任何操作系统上使用 Python 获取 CPU 使用率吗?
    可以,通过使用特定平台的命令或像 psutil 这样的库,您可以在各种操作系统上检索 CPU 使用率。

  3. CPU 使用率信息是实时的吗?
    是的,像 psutil.cpu_percent(interval=1) 这样的方法提供实时的 CPU 使用率数据。

  4. 如何安装 psutil 库?
    您可以使用 pip,通过命令 pip install psutil 来安装 psutil。

  5. 我可以持续监控 CPU 使用率吗?
    可以,您可以在 Python 脚本中设置一个循环,以指定的间隔持续监控 CPU 使用率。