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 相关文章推荐
Go语言基于Socket编写服务器端与客户端通信的实例
Feb 19 Python
python中string模块各属性以及函数的用法介绍
May 30 Python
python PyTorch预训练示例
Feb 11 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
浅析Python装饰器以及装饰器模式
May 28 Python
python实现在函数图像上添加文字和标注的方法
Jul 08 Python
python爬虫 2019中国好声音评论爬取过程解析
Aug 26 Python
解决pandas展示数据输出时列名不能对齐的问题
Nov 18 Python
Python库skimage绘制二值图像代码实例
Apr 10 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 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
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
flash 得到自身url参数的代码
2009/11/15 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
python 禁止函数修改列表的实现方法
2017/08/03 Python
python matlibplot绘制3D图形
2018/07/02 Python
python如何实现数据的线性拟合
2019/07/19 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
Python银行系统实战源码
2019/10/25 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
传播学毕业生求职信
2013/10/11 职场文书
保险公司演讲稿
2014/09/02 职场文书
中班下学期个人总结
2015/02/12 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
2015年仓管员工作总结
2015/04/21 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android