一:介绍
psutil是一个用于检索信息的跨平台库(支持Linux/UNIX/OSX/Windows等),是运维期间经常使用的库,能查看系统利用率(CPU、内存、磁盘、网络),系统运行状态等
安装:pip install psutil 或者进入
https://pypi.org/project/psutil/
下载安装
二:一些实例 2.1获取进程相关信息Process
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import psutil p=psutil.Process() print('进程号:{0}'.format(p.pid)) print('进程名:{0}'.format(p.name())) print('进程的bin路径:{0}'.format(p.exe())) print('进程的工作目录绝对路径:{0}'.format(p.cwd())) print('进程状态:{0}'.format(p.status())) print('进程创建时间:{0}'.format(p.create_time())) print('进程的cpu时间信息:{0}'.format(p.cpu_times())) print('进程内存利用率:{0}'.format(p.memory_percent())) print('此进程的用户名:{0}'.format(p.username())) print('此进程是否在运行:{0}'.format(p.is_running())) print('此进程的父进程:{0}'.format(p.parent()))
运行结果:
2.2获取CPU信息
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import psutil print('CPU逻辑数量:{0}'.format(psutil.cpu_count())) print('CPU物理核心:{0}'.format(psutil.cpu_count(logical=False))) print('当前全系统CPU的使用率:{0}'.format(psutil.cpu_percent(interval=1, percpu=True))) print('获取cpu的完整信息::{0}'.format(psutil.cpu_times()))
运行结果:
2.3获取内存信息
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
print('物理内存(返回的是字节为单位的整数):{0}'.format(psutil.virtual_memory())) print('交换内存的信息(返回的是字节为单位的整数):{0}'.format(psutil.swap_memory()))
运行结果:
2.4磁盘信息
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
print('磁盘分区信息:{0}'.format(psutil.disk_partitions())) print('磁盘使用情况:{0}'.format(psutil.disk_usage('I:'))) print('磁盘IO:{0}'.format(psutil.disk_io_counters()))
运行结果:
2.5网络信息
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import psutil print('获取网络读写字节/包的个数:{0}'.format(psutil.net_io_counters())) # net_io_counters方法,如果需要获取单个网卡的io信息,加上pernic=True参数 print('获取网络读写字节/包的个数:{0}'.format(psutil.net_io_counters(pernic=True))) print('获取网络接口信息:{0}'.format(psutil.net_if_addrs())) print('获取网络接口状态:{0}'.format(psutil.net_if_stats())) print('获取当前网络连接信息:{0}'.format(psutil.net_connections()))
运行结果:
2.6其他信息
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import psutil print('获取开机时间:{0}'.format(psutil.boot_time())) print('获取当前连接在系统上的用户:{0}'.format(psutil.users())) print('获取全部进程号:{0}'.format(psutil.pids())) print('类似于linux中的top效果:{0}'.format(psutil.test()))
运行结果:
三.实时获取网速小案例
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import psutil import time while True: s1 = psutil.net_io_counters(pernic=True)['以太网'] time.sleep(1) s2 = psutil.net_io_counters(pernic=True)['以太网'] result = s2.bytes_recv - s1.bytes_recv print(str(result / 1024) + 'kb/s')
运行结果:
更多的请参阅源代码
reference:psutil官网