psutil - Python中用于进程和系统监控的跨平台库

1、简介

psutil(进程和系统实用程序)是一个跨平台库,用于检索 Python 中运行的进程和系统利用率(CPU、内存、磁盘、网络、传感器)的信息。

它主要用于系统监控、分析和限制进程资源以及管理正在运行的进程。

它实现了经典 UNIX 命令行工具提供的许多功能,如 ps、top、iotop、lsof、netstat、ifconfig、free 等。

psutil 目前支持以下平台:

  • Linux

  • Windows

  • macOS

  • FreeBSD, OpenBSD, NetBSD

  • Sun Solaris

  • AIX

支持的 Python 版本有 2.7、3.6+ 和 PyPy。

如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

github地址:

https://github.com/giampaolo/psutil

2、快速上手

2.1、CPU

示例代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-import psutilprint(psutil.cpu_times())
print("----------")
for x in range(3):print(psutil.cpu_percent(interval=1))
print("----------")
for x in range(3):print(psutil.cpu_percent(interval=1, percpu=True))
print("----------")
for x in range(3):print(psutil.cpu_times_percent(interval=1, percpu=False))
print("----------")
print(psutil.cpu_count())
print("----------")
print(psutil.cpu_count(logical=False))
print("----------")
print(psutil.cpu_stats())
print("----------")
print(psutil.cpu_freq())
print("----------")
print(psutil.getloadavg())

运行结果:

2.2、内存

示例代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-import psutilprint(psutil.virtual_memory())
print("----------")
print(psutil.swap_memory())

 运行结果:

2.3、磁盘

示例代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-import psutilprint(psutil.disk_partitions())
print("----------")
print(psutil.disk_usage('/'))
print("----------")
print(psutil.disk_io_counters(perdisk=False))

 运行结果:

2.4、网络

示例代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-import psutilprint(psutil.net_io_counters(pernic=True))
print("----------")
print(psutil.net_if_addrs())
print("----------")
print(psutil.net_if_stats())

 运行结果:

2.5、传感器

示例代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-import psutilprint(psutil.sensors_battery())

 运行结果:

2.6、其他系统信息

示例代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-import psutilprint(psutil.users())
print("----------")
print(psutil.boot_time())

 运行结果:

2.7、过程管理

示例代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-import psutilprint(psutil.pids())
print("----------")
p = psutil.Process(7639)
print(p)
print("----------")
print(p.pid)
print("----------")
print(p.name())
print("----------")
print(p.exe())
print("----------")
print(p.cwd())
print("----------")
print(p.cmdline())
print("----------")
print(p.ppid())
print("----------")
print(p.parent())
print("----------")
print(p.parents())
print("----------")
print(p.children(recursive=True))
print("----------")
print(p.status())
print("----------")
print(p.create_time())
print("----------")
print(p.terminal())
print("----------")
print(p.username())
print("----------")
print(p.uids())
print("----------")
print(p.gids())
print("----------")
print(p.cpu_times())
print("----------")
print(p.cpu_percent(interval=1.0))
print("----------")
print(p.memory_info())
print("----------")
print(p.memory_percent())
print("----------")
print(p.num_threads())
print("----------")
print(p.num_fds())
print("----------")
print(p.num_ctx_switches())
print("----------")
print(p.nice())
print("----------")
print(p.environ())
print("----------")
print(p.as_dict())
print("----------")
print(p.is_running())
print("----------")
print(psutil.test())

 运行结果:

2.8、进一步处理API

示例代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-import psutilfor proc in psutil.process_iter(['pid', 'name']):print(proc.info)
print("----------")
print(psutil.pid_exists(1))
print("----------")
def on_terminate(proc):print("process {} terminated".format(proc))
on_terminate(proc)

 运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/206001.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【EI会议征稿】第五届人工智能、网络与信息技术国际学术会议(AINIT 2024)

第五届人工智能、网络与信息技术国际学术会议(AINIT 2024) 2024 5th International Seminar on Artificial Intelligence, Networking and Information Technology 第五届人工智能、网络与信息技术国际学术会议(AINIT 2024)将于…

全民阅读营造良好氛围 助力培养孩子阅读习惯

日前,2023年全民终身学习活动周全国总开幕式在重庆举行,自2005年起,终身学习活动周已连续举办了18届,累计带动4亿多群众参与全民终身学习活动周,有效推进全面阅读。 随着全民阅读氛围的持续浓厚,阅读不再是语文学科的专项,不再是学校教育的专属,家庭、社会都在积极参与进来。尤…

配电房智能综合监控系统

配电房智能综合监控系统是一种针对配电房环境和设备进行实时监控和管理的系统。依托电易云-智慧电力物联网,它集成了多种先进技术,如物联网、大数据、AI视频智能分析等,实现对配电房全方位、智能化的监控和管理。 这个系统的主要功能可能包括…

常见树种(贵州省):007青冈

摘要:本专栏树种介绍图片来源于PPBC中国植物图像库(下附网址),本文整理仅做交流学习使用,同时便于查找,如有侵权请联系删除。 图片网址:PPBC中国植物图像库——最大的植物分类图片库 一、青冈 …

计算3个点的6种分布在平面上的占比

假设平面的尺寸是6*6,用11的方式构造2,在用21的方式构造3 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 3 3 3 x 3 3 2 2 2 1 2 2 2 2 2 1 2 2 在平面上有一个点x,11的操作吧平面分成了3部分2a1,2a…

chatGLM3微调

文章目录 一、问答数据集生成器使用设置问题启动使用产出效果 二、进行微调第一步:下载模型第二步:项目准备2.1 下载项目2.2 然后使用 pip 安装依赖2.3 开始 第三步进行微调3.1安装相关依赖3.2准备数据集,并且上传3.3对数据集进行预处理3.4 进…

外卖配送小程序商城的效果如何

线下餐饮店非常多,主要以同城生意为主,在线上电商和外卖平台的冲击下,传统商家仅通过传统方式经营很难宣传拓客及转化等,线上是必要的渠道,但入驻第三方平台又会有各种困扰,抽成/佣金/流量费/激烈竞争等。 …

SSM客户管理系统CRM开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 客户管理系统CRM是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模…

Socket通信之网络协议基本原理

一台机器将自己想要表达的内容,按照某种约定好的格式发送出去,当另外一台机器收到这些信息后,也能够按照约定好的格式解析出来,从而准确、可靠地获得发送方想要表达的内容。这种约定好的格式就是网络协议(Networking P…

【STM32外设系列】JW01三合一空气质量检测模块

🎀 文章作者:二土电子 🌸 关注公众号获取更多资料! 🐸 期待大家一起学习交流! 文章目录 一、JW01模块简介二、数据格式介绍三、程序设计3.1 串口初始化3.2 串口接收中断服务函数3.3 数据解析函数 四、其他…

Sublime Text 3运行 Python文件出现中文打印乱码的解决方式

很多小伙伴在下载安装好sublime这个编辑器后发现,它虽然能够用来打开python脚本和创建文件编写代码,但是却不能够来运行python代码和程序。所以下面这一篇文章就是会来分享一下,sublime编辑器无法运行python的解决方法,感兴趣的话…

数据库数据恢复—MongoDB数据库文件拷贝出现错误的数据恢复案例

MongoDB数据库数据恢复环境: 一台Windows Server操作系统的虚拟机,虚拟机上部署有MongoDB数据库。 MongoDB数据库故障&检测: 在未关闭MongoDB服务的情况下,工作人员将MongoDB数据库文件拷贝到其他分区,然后将原数…