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中的map、reduce和filter浅析
Apr 26 Python
python实现NB-IoT模块远程控制
Jun 20 Python
Python 互换字典的键值对实例
Feb 12 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
May 15 Python
Python 串口读写的实现方法
Jun 12 Python
Django之提交表单与前后端交互的方法
Jul 19 Python
Python中的引用和拷贝实例解析
Nov 14 Python
Python读取VOC中的xml目标框实例
Mar 10 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
Jul 03 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
Sep 17 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
Jan 27 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
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
PHP7常量数组用法分析
2016/09/26 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
js控制frameSet示例
2013/09/10 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
bootstrap 设置checkbox部分选中效果
2017/04/20 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
Python实现Logger打印功能的方法详解
2017/09/01 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
Python谱减法语音降噪实例
2019/12/18 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
Snapfish爱尔兰:在线照片打印和个性化照片礼品
2018/09/17 全球购物
程序员机试试题汇总
2012/03/07 面试题
房地产管理毕业生自荐信
2013/11/04 职场文书
文体活动总结范文
2014/05/05 职场文书
社区义诊通知
2015/04/24 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
python接口测试返回数据为字典取值方式
2022/02/12 Python
python高温预警数据获取实例
2022/07/23 Python