You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

终端运行Python脚本获取单CPU使用率始终为0的问题

问题解答

这是因为psutil.cpu_percent()的工作机制导致的:它需要对比两次CPU状态采样才能计算出使用率。当你在终端第一次运行脚本时,psutil.cpu_percent(percpu=True)是程序启动后的第一次采样,没有历史基准数据,所以会返回全0的结果。

而Jupyter Notebook环境中,大概率你之前已经执行过psutil相关的代码(哪怕是测试代码),或者Notebook的内核在后台已经完成过CPU状态采样,所以这次调用能拿到有效的对比数据,自然输出正确的使用率。

修复方案

有两种简单的修复方式:

方式1:先调用一次丢弃结果,再获取有效数据

import psutil 

# 第一次调用获取基准数据,丢弃结果
psutil.cpu_percent(percpu=True)
# 第二次调用获取真实使用率
values = psutil.cpu_percent(percpu=True) 

print(f"{'CPU':>3} {'CPU%':>6}")
print(10*'=')
for cpu in range(1, psutil.cpu_count()+1):
    print(f"{cpu:<3} {values[cpu-1]:>5}%")

方式2:设置interval参数让采样等待一段时间

interval=N会让函数等待N秒,这段时间内完成两次采样并计算使用率:

import psutil 

# 等待1秒后返回真实使用率
values = psutil.cpu_percent(percpu=True, interval=1) 

print(f"{'CPU':>3} {'CPU%':>6}")
print(10*'=')
for cpu in range(1, psutil.cpu_count()+1):
    print(f"{cpu:<3} {values[cpu-1]:>5}%")

两种方式都能解决终端运行时输出全0的问题,你可以根据需求选择:方式1几乎无延迟但依赖两次调用,方式2会等待指定时间但代码更简洁。

内容的提问来源于stack exchange,提问作者PeeteKeesel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:31:18