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 greenlet实现原理和使用示例
Sep 24 Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
Python操作MongoDB详解及实例
May 18 Python
Python进程间通信之共享内存详解
Oct 30 Python
Python编程产生非均匀随机数的几种方法代码分享
Dec 13 Python
Python反射用法实例简析
Dec 22 Python
python事件驱动event实现详解
Nov 21 Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 Python
python实现超市管理系统(后台管理)
Oct 25 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
Apr 01 Python
python安装读取grib库总结(推荐)
Jun 24 Python
Python加速程序运行的方法
Jul 29 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实现的在线人员函数库
2008/04/09 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
php内嵌函数用法实例
2015/03/20 PHP
php中使用sftp教程
2015/03/30 PHP
php显示时间常用方法小结
2015/06/05 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
js loading加载效果实现代码
2009/11/24 Javascript
jQuery 开天辟地入门篇一
2009/12/09 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
python与字符编码问题
2019/05/24 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
个人借款担保书
2014/04/02 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
个人剖析材料范文
2014/09/30 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
募捐感谢信
2015/01/22 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
培训督导岗位职责
2015/04/10 职场文书
原告代理词范文
2015/05/25 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android