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程序设计入门(3)数组的使用
Jun 16 Python
Python深入学习之内存管理
Aug 31 Python
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
实例解析Python设计模式编程之桥接模式的运用
Mar 02 Python
基于Python的关键字监控及告警
Jul 06 Python
Python实现带参数与不带参数的多重继承示例
Jan 30 Python
Python 批量合并多个txt文件的实例讲解
May 08 Python
python求质数的3种方法
Sep 28 Python
使用WingPro 7 设置Python路径的方法
Jul 24 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
Apr 08 Python
python实现简易自习室座位预约系统
Jun 30 Python
python周期任务调度工具Schedule使用详解
Nov 23 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
ThinkPHP写第一个模块应用
2012/02/20 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
解决vue页面刷新或者后退参数丢失的问题
2018/03/13 Javascript
浅谈Node 调试工具入门教程
2018/03/20 Javascript
webpack4简单入门实例
2018/09/06 Javascript
关于vue的npm run dev和npm run build的区别介绍
2019/01/14 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
对Python3之进程池与回调函数的实例详解
2019/01/22 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
python global关键字的用法详解
2019/09/05 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
《搭石》教学反思
2014/04/07 职场文书
超市商业计划书
2014/05/04 职场文书
护理专业毕业生自荐书
2014/05/24 职场文书
争先创优演讲稿
2014/09/15 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技