亚当麦克斯 2024-07-04 15:11 采纳率: 0%
浏览 51

Windows系统中使用python获取CPU当前频率

我想在windows系统下获取当前电脑CPU Speed(frequency),但是psutil库目前好像不能实现获取当前的频率了,current frequency永远是个固定值,另外使用WMIC方法也行不通,读取到的CPU 当前频率也是固定值,和psutil的结果没区别,求方法解决!

import psutil

# 获取CPU信息
cpus = psutil.cpu_times(percpu=True)

# 打印CPU频率
for cpu_idx, cpu in enumerate(cpus):
    print(f"  CPU frequency: {psutil.cpu_freq()}")

****************运行结果如下********************
  CPU frequency: scpufreq(current=1201.0, min=0.0, max=2803.0)
  CPU frequency: scpufreq(current=1201.0, min=0.0, max=2803.0)
  CPU frequency: scpufreq(current=1201.0, min=0.0, max=2803.0)
  CPU frequency: scpufreq(current=1201.0, min=0.0, max=2803.0)
  CPU frequency: scpufreq(current=1201.0, min=0.0, max=2803.0)
  CPU frequency: scpufreq(current=1201.0, min=0.0, max=2803.0)
  CPU frequency: scpufreq(current=1201.0, min=0.0, max=2803.0)
  CPU frequency: scpufreq(current=1201.0, min=0.0, max=2803.0)

img

img

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-07-04 15:11
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    你好!看起来你在使用 Python 的 psutil 库来获取 CPU 当前频率时遇到了问题。psutil 库确实在某些情况下可能无法获取到 CPU 的实时频率,因为它依赖于系统提供的接口,而这些接口可能并不总是提供动态频率信息。

    在 Windows 系统中,你可以尝试使用其他方法来获取 CPU 的实时频率。一个可能的解决方案是使用 Windows Management Instrumentation(WMI),这是一个提供访问操作系统和硬件信息的接口。以下是使用 Python 的 wmi 库来获取 CPU 频率的示例代码:

    import wmi
    
    # 创建 WMI 客户端
    c = wmi.WMI()
    
    # 查询 CPU 信息
    for cpu in c.Win32_Processor():
        print(f"CPU Frequency: {cpu.MaxClockSpeed} MHz")
    

    这段代码会打印出 CPU 的最大时钟速度,这通常是一个固定的值,但可以作为一个参考。

    如果你需要更详细的信息,比如实时的 CPU 频率,你可能需要使用更底层的系统调用或者第三方库,这些可能需要更多的系统权限和专业知识。

    另外,根据你提供的系统资源监控器截图,CPU 的基准速度是 2.80 GHz,而当前频率是 2.99 GHz。这表明 CPU 正在以略高于其基准速度运行。

    如果你需要进一步的帮助,或者想要更具体的代码示例,请随时告诉我。我会尽力提供帮助。同时,如果你需要任何参考链接,我可以为你提供。

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 7月4日
  • 修改了问题 7月4日
  • 创建了问题 7月4日