python psutil模块使用方法解析


Posted in Python onAugust 01, 2019

psutil(进程和系统实用程序)是一个跨平台的库,用于 在Python中检索有关运行进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。

它主要用于系统监视,分析和限制流程资源以及运行流程的管理。它实现了UNIX命令行工具提供的许多功能,例如:ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice,ionice,iostat,iotop,uptime,pidof,tty,taskset,pmap。psutil目前支持以下平台:

  • Linux的
  • 视窗
  • OSX,
  • FreeBSD,OpenBSD,NetBSD
  • Sun Solaris
  • AIX

... 32位和64位体系结构,Python版本从2.6到3.6。

1、获取系统性能信息

#! /env python3
#coding=utf-8
import psutil
''''
获取cpu信息
'''
a = psutil.cpu_times() #使用cpu_times方法获取cpu完成信息,需要显示所有的cpu信息
b = psutil.cpu_times().user #获取单项cpu的数据信息,如用户user的cpu时间比
c = psutil.cpu_count() #获取cpu的逻辑个数

print (a)
print (b)
print (c)

'''
内存信息
'''
mem = psutil.virtual_memory()  #使用pstuil.virtual_memory方法获取内存的完整信息
mem_total = psutil.virtual_memory().total #获取内存总数
mem_free = psutil.virtual_memory().free #获取内存剩余
print (mem)
print (mem_total)
print (mem_free)


'''
磁盘信息
'''
disk_partitions = psutil.disk_partitions()  #获取磁盘完整信息
disk_usage = psutil.disk_usage('/')  #获取整个硬盘的信息
disk_usage_c = psutil.disk_usage('C://') #获取分区c的硬盘信息
disk_io = psutil.disk_io_counters() #获取硬盘的总io个数、读写信息
disk_io_perdisk = psutil.disk_io_counters(perdisk=True) #‘perdisk=True'参数获取单个分区IO个数、读写信息
print (disk_partitions)
print (disk_usage)
print (disk_usage_c)
print ('硬盘总io=' +str(disk_io))
print ('单个分区信息='+str(disk_io_perdisk))

'''
网络信息
'''
net_io = psutil.net_io_counters()  #获取网络总IO信息、默认pernic=False
net_io_pernic = psutil.net_io_counters(pernic=True) #获取每个网卡的io信息
net_connections = psutil.net_connections()#获取所有的连接信息
print (net_io)
print (net_io_pernic)
print (net_connections)

'''
其他系统信息
'''
users = psutil.users()   #当前登录系统的用户信息
import datetime
boot_time = psutil.boot_time() #获取开机时间,为linux格式
boot_time_nu = datetime.datetime.fromtimestamp(psutil.boot_time()).strftime('%Y-%m-%d%H:%M:%S') #转换为自然格式
print (users)
print (boot_time)
print (boot_time_nu)

2、系统进程管理

#! /env python3
#coding=utf-8
import psutil
'''
进程信息
'''
pids = psutil.pids() #列出所有进程id
pids_4644= psutil.Process(4644) #列出指定pid为4644的进程信息
print (pids)
print (pids_4644.name())  #输出进程名
print (pids_4644.exe())   #输出进程路径
print (pids_4644.cwd())   #输出绝对路径
print (pids_4644.status()) #输出进程状态
print (pids_4644.create_time()) #输出创建时间、时间戳格式
#print (pids_4644.gid())    #输出进程gid信息
print (pids_4644.cpu_times)   #输出cpu时间信息,包括user,system两个cpu时间
print (pids_4644.cpu_affinity()) #get进程cpu亲和度
print (pids_4644.memory_percent()) #进程利用率
print (pids_4644.memory_info)  #进程内存信息
print (pids_4644.io_counters()) #进程io信息,包括读写IO数及字节数
print (pids_4644.connections())   #返回打开进程sockert的namedutples列表、包括fs,family等信息
print (pids_4644.num_threads())   #进程开启的线程数

'''
popen类的使用
'''
import psutil
from subprocess import PIPE  #通过psutil的popen方法启动的应用程序,可以跟踪该程序的所有相关信息

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python生成随机MAC地址
Mar 10 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
PyCharm配置mongo插件的方法
Nov 30 Python
python找出一个列表中相同元素的多个索引实例
Jun 11 Python
python绘制无向图度分布曲线示例
Nov 22 Python
TensorFLow 数学运算的示例代码
Apr 21 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 Python
python 利用Pyinstaller打包Web项目
Oct 23 Python
总结python 三种常见的内存泄漏场景
Nov 20 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 Python
PyTorch dropout设置训练和测试模式的实现
May 27 Python
python读写csv文件并增加行列的实例代码
Aug 01 #Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
Aug 01 #Python
python对csv文件追加写入列的方法
Aug 01 #Python
Django Aggregation聚合使用方法解析
Aug 01 #Python
Flask教程之重定向与错误处理实例分析
Aug 01 #Python
python gdal安装与简单使用
Aug 01 #Python
Django模型修改及数据迁移实现解析
Aug 01 #Python
You might like
一些花式咖啡的配方
2021/03/03 冲泡冲煮
PHP 的 __FILE__ 常量
2007/01/15 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
jquery 选项卡效果 新手代码
2011/07/08 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
基于JavaScript实现动态创建表格和增加表格行数
2015/12/20 Javascript
Bootstrap实现提示框和弹出框效果
2017/01/11 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
vue.js封装switch开关组件的操作
2020/10/26 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
用Python代码来绘制彭罗斯点阵的教程
2015/04/03 Python
python读取和保存视频文件
2018/04/16 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
加热夹克:RAVEAN
2018/10/19 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
应届生.NET方向面试题
2015/05/23 面试题
关于圣诞节的广播稿
2014/01/26 职场文书
食堂标语大全
2014/06/11 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android