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 10 Python
Python 多进程和数据传递的理解
Oct 09 Python
Python切片操作深入详解
Jul 27 Python
对Python3.x版本print函数左右对齐详解
Dec 22 Python
Python ATM功能实现代码实例
Mar 19 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
使用Python构造hive insert语句说明
Jun 06 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 Python
Python drop方法删除列之inplace参数实例
Jun 27 Python
利用scikitlearn画ROC曲线实例
Jul 02 Python
详解在Python中使用Torchmoji将文本转换为表情符号
Jul 27 Python
python切片作为占位符使用实例讲解
Feb 17 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
PHP分页效率终结版(推荐)
2013/07/01 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
2014/11/19 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
python实现月食效果实例代码
2019/06/18 Python
python各层级目录下import方法代码实例
2020/01/20 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
Python绘制全球疫情变化地图的实例代码
2020/04/20 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
DOM和JQuery对象有什么区别
2016/11/11 面试题
职工小家建设活动方案
2014/08/25 职场文书
个人违纪检讨书
2014/09/15 职场文书
政府四风问题整改措施
2014/10/04 职场文书
2015年五一劳动节演讲稿
2015/03/18 职场文书
2016年教师新年寄语
2015/08/18 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
正则表达式拆分url实例代码
2022/02/24 Java/Android
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
2022/04/02 Servers
利用Java连接Hadoop进行编程
2022/06/28 Java/Android