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中__name__的使用实例
Apr 14 Python
Python判断某个用户对某个文件的权限
Oct 13 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
为什么称python为胶水语言
Jun 16 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
Nov 05 Python
python 写一个文件分发小程序
Dec 05 Python
举例讲解Python装饰器
Dec 24 Python
教你怎么用Python处理excel实现自动化办公
Apr 30 Python
python 如何执行控制台命令与操作剪切板
May 20 Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
Apr 28 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
PHP中调用JAVA
2006/10/09 PHP
php与php MySQL 之间的关系
2009/07/17 PHP
PHP APC缓存配置、使用详解
2014/03/06 PHP
php使用codebase生成随机数
2014/03/25 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
js生成缩略图后上传并利用canvas重绘
2014/05/15 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
浅析Bootstrap缩略图组件与警示框组件
2016/04/29 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
浅析Ajax语法
2016/12/05 Javascript
微信小程序 页面滑动事件的实例详解
2017/10/12 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
vue的滚动条插件实现代码
2019/09/07 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
Python基于递归算法求最小公倍数和最大公约数示例
2018/07/27 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
写给保洁员表扬信
2014/01/08 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
领导班子四风表现材料
2014/08/23 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS