Python使用psutil包获取CPU和内存信息的详细教程与注意事项
python通过第三方包psutil来获取cpu和内存信息

1.通过pip安装psutil:
pip install psutil
2.获取指定进程的内存/CPU利用率:
# 定义一个进程列表
process_lst = []
def getProcess(pName):
# 获取当前系统所有进程id列表
all_pids = psutil.pids()
# 遍历所有进程,名称匹配的加入process_lst
for pid in all_pids:
p = psutil.Process(pid)
if (p.name() == pName):
process_lst.append(p)
return process_lst
# 获取进程名位Python的进程对象列表
获取“Python”相关的进程,其结果存储在 process_lst 中。
# 获取内存利用率:
对于 process_lst 中的每一个 process_instance 而言:
打印进程实例的内存百分比。
# 获取cpu利用率:
for process_instance in process_lst:
获取 process_instance 的 CPU 使用率,参数为 None
sleep(2)
for process_instance in process_lst:
打印 process_instance 的 cpu_percent 方法,传入 None 作为参数
执行结果表明,存在 3 个 Python 进程。因此,分别获取到了 3 个内存利用率和 3 个 cpu 利用率。
对于cpu利用率要额外说明:
这里要注意是同一个进程对象,所以下面的代码是错误的:
def getProcess(pName):
# 获取当前系统所有进程id列表
all_pids = psutil.pids()
pid_lst = []
# 遍历所有进程,名称匹配的加入process_lst
for pid in all_pids:
p = psutil.Process(pid)
if (p.name() == pName):
pid_lst.append(pid)
return pid_lst
获取名为“Python”的进程,将其存储在 pid_lst 中。
# 获取cpu利用率:
for pid in pid_lst:
通过 psutil 库获取到进程实例,该进程实例为指定的 pid 对应的进程,即 process_instance = psutil.Process(pid) 。
process_instance.cpu_percent(None)
sleep(0)
for pid in pid_lst:
process_instance = psutil.Process(pid)
print process_instance.cpu_percent(None)
执行结果:CPU利用率为0
原因在于:有 2 次对 pid_lst 进行遍历。前后 2 次调用 cpu_percent(None)时的进程对象是不一样的。每次循环都会依据 pid 重新实例化一个新的进程对象。
3.获取系统的内存和CPU利用率
# 系统的内存利用率
打印 psutil 虚拟内存的百分比。
# 系统的CPU利用率
psutil.cpu_percent(None)
sleep(3)
打印 psutil.cpu_percent(None) 这个函数的结果。 调用 psutil 库中的 cpu_percent 函数并传入 None 作为参数,然后将其结果进行打印。 使用 psutil 库的 cpu_percent 函数,传入 None 作为参数,最后将该函数的输出进行打印。 执行 psutil.cpu_percent(None) 并将其返回值进行打印。 对 psutil 库中的 cpu_percent 函数传入 None 进行调用,接着将其结果打印出来。 调用 psutil 库的 cpu_percent 函数,参数为 None,然后打印该函数的输出。 运行 psutil.cpu_percent(None) 并把其结果展示出来。 让 psutil.cpu_percent(None) 运行并打印其结果。 启动 psutil.cpu_percent(None) 并将其结果进行打印。 触发 psutil.cpu_percent(None) 并把结果打印出来。 执行 psutil 库中的 cpu_percent 函数,传入 None 后将结果打印。 利用 psutil 库的 cpu_percent 函数,传入 None 并打印其输出。 调用 psutil 库的 cpu_percent 函数,以 None 为参数并打印结果。 运行 psutil 库中的 cpu_percent 函数,传入 None 后展示其结果。 使 psutil.cpu_percent(None) 运行并将结果呈现出来。
执行结果:
参考:
psutil说明: