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中使用不同编码读写txt文件详解
May 28 Python
解决python文件字符串转列表时遇到空行的问题
Jul 09 Python
python中import reload __import__的区别详解
Oct 16 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
Aug 03 Python
解决Python下json.loads()中文字符出错的问题
Dec 19 Python
Django框架验证码用法实例分析
May 10 Python
wxPython窗体拆分布局基础组件
Nov 19 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
基于python实现数组格式参数加密计算
Apr 21 Python
python如何调用java类
Jul 05 Python
Python 中面向接口编程
May 20 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利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
2款PHP无限级分类实例代码
2015/11/11 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
js移除事件 js绑定事件实例应用
2012/11/28 Javascript
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
21个JavaScript事件(Events)属性汇总
2014/12/02 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
使用python实现扫描端口示例
2014/03/29 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
阿迪达斯俄罗斯官方商城:adidas俄罗斯
2017/03/08 全球购物
资料员的岗位职责
2013/11/20 职场文书
社会实践感言
2014/01/25 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
预备党员个人总结
2015/02/14 职场文书
安全承诺书格式范本
2015/04/28 职场文书
生日宴会祝酒词
2015/08/10 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL