如何利用win32pdh在Python中获取CPU使用率
发布时间:2023-12-25 08:15:22
在Python中使用win32pdh模块获取CPU使用率的步骤如下:
1. 安装依赖库:首先需要安装pywin32库,在命令行中执行以下命令:
pip install pywin32
2. 导入必要的模块:在Python脚本中导入必要的模块:
import win32pdh import time import os
3. 定义函数获取CPU使用率:创建一个函数,使用win32pdh模块获取当前CPU使用率。以下是一个示例代码:
def get_cpu_usage():
query = win32pdh.OpenQuery() # 创建一个查询对象
counter_path = win32pdh.MakeCounterPath((None, 'Processor', '_Total', None, 0, 'Processor Time')) # 要监测的计数器路径
counter_handle = win32pdh.AddCounter(query, counter_path) # 添加计数器到查询对象
win32pdh.CollectQueryData(query) # 收集查询数据
time.sleep(1) # 等待1秒使得收集有实际数据
win32pdh.CollectQueryData(query) # 再次收集查询数据
counter_info = win32pdh.GetCounterInfo(counter_handle) # 获取计数器信息
counter_value = win32pdh.GetFormattedCounterValue(counter_handle, win32pdh.PDH_FMT_DOUBLE)[1] # 获取计数器值
win32pdh.CloseQuery(query) # 关闭查询
return counter_value
4. 调用函数获取CPU使用率:调用定义的函数获取CPU使用率,并输出结果。
cpu_usage = get_cpu_usage()
print('CPU Usage: {}%'.format(cpu_usage))
完整代码如下所示:
import win32pdh
import time
import os
def get_cpu_usage():
query = win32pdh.OpenQuery() # 创建一个查询对象
counter_path = win32pdh.MakeCounterPath((None, 'Processor', '_Total', None, 0, 'Processor Time')) # 要监测的计数器路径
counter_handle = win32pdh.AddCounter(query, counter_path) # 添加计数器到查询对象
win32pdh.CollectQueryData(query) # 收集查询数据
time.sleep(1) # 等待1秒使得收集有实际数据
win32pdh.CollectQueryData(query) # 再次收集查询数据
counter_info = win32pdh.GetCounterInfo(counter_handle) # 获取计数器信息
counter_value = win32pdh.GetFormattedCounterValue(counter_handle, win32pdh.PDH_FMT_DOUBLE)[1] # 获取计数器值
win32pdh.CloseQuery(query) # 关闭查询
return counter_value
cpu_usage = get_cpu_usage()
print('CPU Usage: {}%'.format(cpu_usage))
这段代码将输出当前系统的CPU使用率。需要注意的是,由于CPU使用率是实时获取的,所以在收集数据之前需要等待一段时间,这里示例代码使用了1秒的等待时间,可以根据实际情况调整等待时间。
另外,为了确保代码正常运行,需要在Windows系统下执行。
