您好,登录后才能下订单哦!
在系统监控和性能分析中,获取CPU的使用率是一个常见的需求。Python作为一种功能强大的编程语言,提供了多种方式来获取系统的CPU使用率。本文将介绍如何使用Python获取CPU每秒的使用率,并提供相应的代码示例。
psutil
库psutil
是一个跨平台的库,用于检索系统信息和进程管理。它提供了获取CPU使用率的简单方法。
psutil
首先,你需要安装psutil
库。可以使用以下命令进行安装:
pip install psutil
以下是一个使用psutil
获取CPU每秒使用率的示例代码:
import psutil
import time
def get_cpu_usage():
while True:
cpu_percent = psutil.cpu_percent(interval=1)
print(f"CPU使用率: {cpu_percent}%")
time.sleep(1)
if __name__ == "__main__":
get_cpu_usage()
psutil.cpu_percent(interval=1)
:获取CPU的使用率,interval=1
表示每隔1秒获取一次。time.sleep(1)
:让程序休眠1秒,以便每秒获取一次CPU使用率。os
和time
模块如果你不想使用第三方库,也可以使用Python内置的os
和time
模块来获取CPU使用率。这种方法需要读取系统的/proc/stat
文件(仅适用于Linux系统)。
以下是一个使用os
和time
模块获取CPU每秒使用率的示例代码:
import os
import time
def get_cpu_usage():
def read_cpu_stats():
with open('/proc/stat') as f:
line = f.readline()
return [int(x) for x in line.split()[1:]]
prev_stats = read_cpu_stats()
time.sleep(1)
curr_stats = read_cpu_stats()
prev_total = sum(prev_stats)
curr_total = sum(curr_stats)
prev_idle = prev_stats[3]
curr_idle = curr_stats[3]
total_diff = curr_total - prev_total
idle_diff = curr_idle - prev_idle
cpu_usage = 100 * (total_diff - idle_diff) / total_diff
print(f"CPU使用率: {cpu_usage}%")
if __name__ == "__main__":
while True:
get_cpu_usage()
time.sleep(1)
read_cpu_stats()
:读取/proc/stat
文件中的CPU统计信息。prev_stats
和curr_stats
:分别表示前一次和当前的CPU统计信息。total_diff
和idle_diff
:分别表示CPU总时间和空闲时间的差值。cpu_usage
:计算CPU的使用率。multiprocessing
模块如果你需要同时监控多个CPU核心的使用率,可以使用multiprocessing
模块来并行获取每个核心的使用率。
以下是一个使用multiprocessing
模块获取多核CPU每秒使用率的示例代码:
import psutil
import time
from multiprocessing import Process, Queue
def get_cpu_usage(queue):
while True:
cpu_percent = psutil.cpu_percent(interval=1, percpu=True)
queue.put(cpu_percent)
time.sleep(1)
def print_cpu_usage(queue):
while True:
cpu_percent = queue.get()
for i, percent in enumerate(cpu_percent):
print(f"CPU核心 {i} 使用率: {percent}%")
if __name__ == "__main__":
queue = Queue()
p1 = Process(target=get_cpu_usage, args=(queue,))
p2 = Process(target=print_cpu_usage, args=(queue,))
p1.start()
p2.start()
p1.join()
p2.join()
psutil.cpu_percent(interval=1, percpu=True)
:获取每个CPU核心的使用率。multiprocessing.Queue()
:用于在进程之间传递数据。Process
:创建两个进程,一个用于获取CPU使用率,另一个用于打印CPU使用率。本文介绍了三种使用Python获取CPU每秒使用率的方法:使用psutil
库、使用os
和time
模块、以及使用multiprocessing
模块。每种方法都有其适用的场景,你可以根据实际需求选择合适的方法。希望本文对你有所帮助!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。