Python中psutil模块使用汇总
作者:三爷带你飞 发布时间:2022-07-30 10:26:45
标签:Python,psutil,模块
简介:psutil(进程和系统实用程序)是一个跨平台库,用于检索Python中运行进程和系统利用率(CPU、内存、磁盘、网络、传感器)的信息。它主要用于系统监视、分析和限制进程资源以及管理正在运行的进程。它实现了经典UNIX命令行工具提供的许多功能,如ps、top、iotop、lsof、netstat、ifconfig、free等。
支持的平台:Linux、Windows、macOS、FreeBSD, OpenBSD, NetBSD、Sun Solaris、AIX等平台。
安装:
pip install psutil
用户系统信息:
import psutil
import datetime
print("当前用户:", psutil.users())
print("当前系统时间:", psutil.boot_time()) # 以时间戳格式返回)
print(datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H: %M: %S")) # 转换成自然时间格式
内存信息:
mem = psutil.virtual_memory()
print("系统内存全部信息:", mem)
mem_total = float(mem.total)
mem_used = float(mem.used)
mem_free = float(mem.free)
mem_percent = float(mem.percent)
print(f"系统总计内存:{mem_total}")
print(f"系统已经使用内存:{mem_used}")
print(f"系统空闲内存:{mem_free}")
print(f"系统内存使用率:{mem_percent}")
CPU信息:
print("CPU汇总信息:", psutil.cpu_times())
print("cpu逻辑个数:", psutil.cpu_count())
print("swap内存信息:", psutil.swap_memory())
磁盘信息:
print("获取磁盘的完整信息:", psutil.disk_partitions())
print("获取分区表的参数:", psutil.disk_usage('/')) # 获取/分区的状态
print("获取硬盘IO总个数:", psutil.disk_io_counters())
print("获取单个分区IO个数:", psutil.disk_io_counters(perdisk=True)) # perdisk=True参数获取单个分区IO个数
网络信息:
print("获取网络总IO信息:", psutil.net_io_counters())
系统进程管理信息:
print("查看系统全部进程:", psutil.pids())
单个进程的详细信息:
pid_info = psutil.Process(1200)
print(pid_info.name()) # 进程名
print(pid_info.exe()) # 进程的bin路径
print(pid_info.status()) # 进程状态
print(pid_info.create_time()) # 进程创建时间
print(pid_info.cpu_times()) # 进程的cpu时间信息,包括user,system两个cpu信息
print(pid_info.memory_percent()) # 进程内存利用率
print(pid_info.memory_info()) # 进程内存rss,vms信息
print(pid_info.io_counters()) # 进程的IO信息,包括读写IO数字及参数
print(pid_info.num_threads()) # 进程开启的线程数
源码:
import psutil
import datetime
# 用户,系统相关:
print("当前用户:", psutil.users())
print("当前系统时间:", psutil.boot_time()) # 以linux时间格式返回)
print(datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H: %M: %S")) # 转换成自然时间格式
# 内存相关:
mem = psutil.virtual_memory()
print("系统内存全部信息:", mem)
mem_total = float(mem.total)
mem_used = float(mem.used)
mem_free = float(mem.free)
mem_percent = float(mem.percent)
print(f"系统总计内存:{mem_total}")
print(f"系统已经使用内存:{mem_used}")
print(f"系统空闲内存:{mem_free}")
print(f"系统内存使用率:{mem_percent}")
# CPU相关:
print("CPU汇总信息:", psutil.cpu_times())
print("cpu逻辑个数:", psutil.cpu_count())
print("swap内存信息:", psutil.swap_memory())
# 磁盘相关:
print("获取磁盘的完整信息:", psutil.disk_partitions())
print("获取分区表的参数:", psutil.disk_usage('/')) # 获取/分区的状态
print("获取硬盘IO总个数:", psutil.disk_io_counters())
print("获取单个分区IO个数:", psutil.disk_io_counters(perdisk=True)) # perdisk=True参数获取单个分区IO个数
# 网络相关:
print("获取网络总IO信息:", psutil.net_io_counters())
# 系统进程管理:
print("查看系统全部进程:", psutil.pids())
# 单个进程的详细信息:
pid_info = psutil.Process(1200)
print(pid_info.name()) # 进程名
print(pid_info.exe()) # 进程的bin路径
print(pid_info.status()) # 进程状态
print(pid_info.create_time()) # 进程创建时间
print(pid_info.cpu_times()) # 进程的cpu时间信息,包括user,system两个cpu信息
print(pid_info.memory_percent()) # 进程内存利用率
print(pid_info.memory_info()) # 进程内存rss,vms信息
print(pid_info.io_counters()) # 进程的IO信息,包括读写IO数字及参数
print(pid_info.num_threads()) # 进程开启的线程数
运行结果:
来源:https://blog.csdn.net/hzblucky1314/article/details/121645575


猜你喜欢
- 前言场景,顾名思义,就是一个情景,一种场面。在yii2中也有场景,这个场景跟你所理解的场景含义差不多。和用户有交互的系统必不可少的功能包括收
- 本文结合OpenCV官方样例,对官方样例中的代码进行修改,使其能够正常运行,并对自己采集的数据进行实验和讲解。一、准备OpenCV使用棋盘格
- 本文在上文的基础上重新实现支持多线程的服务器。以下为TCP客户端的程序代码:#!/usr/bin/env python3import sys
- 源码:#!/usr/bin/env python# -*- coding:utf-8 -*- import turtleimport tim
- anaconda中安装的python环境中没有pip3在使用anaconda配置的python环境时,发现在python环境中并没有安装pi
- 如下所示:<div class="status_button">
- 本文实例讲述了Python 私有化操作。分享给大家供大家参考,具体如下:私有化xx: 公有变量_x: 单前置下划线,私有化属性或方法,fro
- 本人最近在学习python,在看了一些教程后,用python写了一个简单的云音乐播放器,下面把主要代码贴上来,其中用到了github上他人写
- watch除了可以监听数据的变化,路由的变化也能被其监听到效果如下:具体代码当路由发生变化后,在watch中写具体的业务逻辑let vm =
- 1、新建独立运行环境,命名为env[root@vultr ~]# mkdir projects # 测试的项目总目录[root@vultr
- Real Numbers实数实数是具有小数部分的数字, 当然, 实数不是专门用来表示小数的, 也可以用DECIMAL来存储那些无法用INTE
- 原理:第一步:应用程序把查询SQL语句发给服务器端执行。我们在数据层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给
- 初学Python,遇到需要将mat文件转为csv文件,看了很多博客,最后找到了解决办法,代码如下:#方法1from pandas impor
- 我们知道,C++和python各有优缺点,C++可以直接映射到硬件底层,实现高效运行,而python能够方便地来进行编程,有助于工程的快速实
- 有感于中国互联网设计界十几年的变化,从网页设计师变身界面设计师,和近一两年来兴起的转型交互设计师。大多数都是随着一个行业的兴起而前赴后继的投
- 函数表达式和函数声明在ECMAScript中,创建函数的最常用的两个方法是函数表达式和函数声明,两者期间的区别是有点晕,因为ECMA规范只明
- 简介对与控件QPushButton中的可以使用setStyleSheet设置它背景图片。具体设置背景图片的方法有两种self.button.
- root账户为MySQL的超级管理员用户,拥有MySQL提供的所有权限。我们登录了root账户可以重置其它创建的所有用户的密码,那么root
- 微软在 Github 上开源了一个 Python 静态类型检查工具:pyright ,引起了社区内的多方关注。微软在开源项目上的参与力度是越
- 问:假如我的一个表里含有(a,b,c,d)和(a,b)形成组合键。我能在列值中写这个查询吗?例如: select a,c,d from my