您好,登录后才能下订单哦!
在系统监控和性能分析中,获取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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。