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自动扫雷实现方法
Jul 25 Python
基于Python和Scikit-Learn的机器学习探索
Oct 16 Python
python实现雨滴下落到地面效果
Jun 21 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
Apr 25 Python
Python常见数据类型转换操作示例
May 08 Python
Flask框架工厂函数用法实例分析
May 25 Python
python中的global关键字的使用方法
Aug 20 Python
Python imutils 填充图片周边为黑色的实现
Jan 19 Python
Django Xadmin多对多字段过滤实例
Apr 07 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
Aug 05 Python
如何基于Python实现word文档重新排版
Sep 29 Python
python内置进制转换函数的操作
Jun 02 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
fgetcvs在linux的问题
2012/01/15 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
2015/07/29 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
jQuery Tools tab使用介绍
2012/07/14 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
详解JavaScript 新语法之Class 的私有属性与私有方法
2019/04/23 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
vue接口请求加密实例
2020/08/11 Javascript
python实现稀疏矩阵示例代码
2017/06/09 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
Pycharm如何打断点的方法步骤
2019/06/13 Python
Python面向对象编程基础实例分析
2020/01/17 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
python中Django文件上传方法详解
2020/08/05 Python
敏捷开发的主要原则都有哪些
2015/04/26 面试题
电子商务应届生求职信
2013/11/16 职场文书
业务员薪酬管理制度
2014/01/15 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
社团个人总结范文
2015/03/05 职场文书
2015年技术工作总结范文
2015/04/20 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python
CentOS MySql8 远程连接实战
2022/04/19 MySQL
Python 中面向接口编程
2022/05/20 Python