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实现基于权重的随机数2种方法
Apr 28 Python
python数据结构之图深度优先和广度优先实例详解
Jul 08 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
Aug 31 Python
Python发送http请求解析返回json的实例
Mar 26 Python
Python爬虫实现(伪)球迷速成
Jun 10 Python
python实现zabbix发送短信脚本
Sep 17 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
Oct 17 Python
Python中查看变量的类型内存地址所占字节的大小
Jun 26 Python
浅谈python多进程共享变量Value的使用tips
Jul 16 Python
python实现连连看辅助之图像识别延伸
Jul 17 Python
Python实现检测文件的MD5值来查找重复文件案例
Mar 12 Python
利用python制作拼图小游戏的全过程
Dec 04 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_screw安装使用教程(另一个PHP代码加密实现)
2014/05/29 PHP
thinkphp中ajax与php响应过程详解
2014/12/08 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
Python multiprocessing.Manager介绍和实例(进程间共享数据)
2014/11/21 Python
python使用自定义user-agent抓取网页的方法
2015/04/15 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
HTML5触摸事件演化tap事件介绍
2016/03/25 HTML / CSS
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
汉语言文学毕业生求职信
2013/10/01 职场文书
农业大学毕业生的个人自我评价
2013/10/11 职场文书
业务部经理岗位职责
2014/01/04 职场文书
大学生职业生涯规划书模板
2014/01/18 职场文书
《母鸡》教学反思
2014/02/25 职场文书
优秀员工推荐信
2014/05/10 职场文书
关于群众路线的心得体会
2014/11/05 职场文书
2014年档案室工作总结
2014/12/01 职场文书
小英雄雨来观后感
2015/06/09 职场文书
python实现Nao机器人的单目测距
2021/09/04 Python
Python jiaba库的使用详解
2021/11/23 Python