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

如何将htop的CPU单核心使用率快照记录至文本文件或标准输出?

获取htop CPU使用率快照并供Python读取的方法

直接用htop生成快照

htop支持批量模式(Batch Mode),可绕过交互界面,将输出直接打印到标准输出或文件,适合程序读取:

  • 输出单次快照到标准输出:
    htop -b -n 1
    
    其中-b启用批量模式,-n 1指定只输出1次快照(避免持续动态输出)。
  • 保存快照到文本文件:
    htop -b -n 1 > htop_cpu_snapshot.txt
    

不过htop的输出包含大量装饰性字符(边框、颜色码),解析起来较繁琐。如果仅需获取单核心CPU使用率,更推荐用专门的系统统计工具mpstat,其输出格式规整,更适合脚本处理。

用mpstat获取易解析的CPU数据

mpstat是sysstat工具集的一部分(多数Linux发行版默认预装,未安装可通过包管理器获取),能直接输出每个CPU核心的使用率:

  • 输出所有核心的单次CPU统计:
    mpstat -P ALL 1 1
    
    其中-P ALL指定显示所有核心,1 1表示间隔1秒采样1次。

Python读取示例

用subprocess模块捕获mpstat输出并解析单核心使用率:

import subprocess
import re

# 执行mpstat命令并捕获输出
result = subprocess.run(
    ["mpstat", "-P", "ALL", "1", "1"],
    capture_output=True,
    text=True
)

# 解析输出,提取每个核心的使用率
cpu_usage = {}
for line in result.stdout.splitlines():
    # 匹配核心行(格式示例:"CPU    0  9.00  0.00  ...")
    match = re.match(r'CPU\s+(\d+)\s+(\d+\.\d+)', line)
    if match:
        core_num = int(match.group(1))
        idle_rate = float(match.group(2))
        # 使用率 = 100 - 空闲率
        usage_rate = 100 - idle_rate
        cpu_usage[core_num] = round(usage_rate, 2)

print("单核心CPU使用率:", cpu_usage)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:09:25