psutil库的使用说明

前言

        psutil是一个跨平台的库,用于获取系统的进程和系统利用率(包括 CPU、内存、磁盘、网络等)信息。

目录

安装

应用场景

常用方法

一、系统信息相关函数

 二、进程信息相关函数

三、网络信息相关函数

 四、其他实用函数

使用样例

监控应用程序


安装

pip install psutil

应用场景

一、系统监控

二、进程管理

三、资源限制

四、自动化任务

常用方法

一、系统信息相关函数

psutil.cpu_times()

  • 返回系统的 CPU 时间信息,包括用户态时间、系统态时间、空闲时间等。

psutil.cpu_percent()

  • 返回 CPU 的使用率百分比。可以指定间隔时间来获取一段时间内的平均使用率。

psutil.virtual_memory()

  • 返回系统的虚拟内存信息,包括总内存、可用内存、已使用内存等。

psutil.swap_memory()

  • 返回系统的交换内存信息。

psutil.disk_usage(path)

  • 返回指定路径的磁盘使用情况,包括总空间、已使用空间和可用空间等。

代码

     import psutilcpu_times = psutil.cpu_times()print(f"用户态时间:{cpu_times.user}")print(f"系统态时间:{cpu_times.system}")print(f"空闲时间:{cpu_times.idle}")cpu_percent = psutil.cpu_percent(interval=1)print(f"CPU 使用率:{cpu_percent}%")memory_info = psutil.virtual_memory()print(f"总内存:{memory_info.total}")print(f"可用内存:{memory_info.available}")print(f"已使用内存:{memory_info.used}")swap_info = psutil.swap_memory()print(f"总交换内存:{swap_info.total}")print(f"已使用交换内存:{swap_info.used}")print(f"可用交换内存:{swap_info.free}")disk_usage = psutil.disk_usage('/')print(f"总磁盘空间:{disk_usage.total}")print(f"已使用磁盘空间:{disk_usage.used}")print(f"可用磁盘空间:{disk_usage.free}")

 二、进程信息相关函数

psutil.pids()

  • 返回当前系统中的所有进程 ID。

psutil.Process(pid)

  • 创建一个表示特定进程的对象,可以通过进程 ID 来获取。

process.name()

  • 返回进程的名称。

process.exe()

  • 返回进程的可执行文件路径。

process.cpu_percent()

  • 返回进程的 CPU 使用率百分比。

process.memory_info()

  • 返回进程的内存使用信息,包括 RSS(常驻集大小)和 VMS(虚拟内存大小)等。

process.terminate()

  • 终止进程。

 代码

     pids = psutil.pids()print(f"进程 ID 列表:{pids}")process = psutil.Process(1234)process_name = process.name()print(f"进程名称:{process_name}")exe_path = process.exe()print(f"可执行文件路径:{exe_path}")process_cpu_percent = process.cpu_percent(interval=1)print(f"进程 CPU 使用率:{process_cpu_percent}%")memory_info = process.memory_info()print(f"进程 RSS:{memory_info.rss}")print(f"进程 VMS:{memory_info.vms}")process.terminate()

三、网络信息相关函数

psutil.net_io_counters()

  • 返回系统的网络 I/O 统计信息,包括发送和接收的字节数、数据包数等。

psutil.net_if_addrs()

  • 返回系统的网络接口地址信息。

psutil.net_if_stats()

  • 返回系统的网络接口状态信息。

  代码

     net_io = psutil.net_io_counters()print(f"发送字节数:{net_io.bytes_sent}")print(f"接收字节数:{net_io.bytes_recv}")net_addrs = psutil.net_if_addrs()print(f"网络接口地址信息:{net_addrs}")net_stats = psutil.net_if_stats()print(f"网络接口状态信息:{net_stats}")

 四、其他实用函数

psutil.boot_time()

  • 返回系统的启动时间(以秒为单位,从 Unix 纪元时间开始计算)。

psutil.users()

  • 返回当前登录到系统的用户信息。

  代码

     boot_time = psutil.boot_time()print(f"系统启动时间:{boot_time}")users = psutil.users()print(f"当前登录用户信息:{users}")

使用样例

监控应用程序

import psutil
import time# 要监控的应用程序名称
target_app_name = "YourAppName.exe"while True:for process in psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_info']):if process.info['name'] == target_app_name:cpu_percent = process.info['cpu_percent']memory_info = process.info['memory_info']rss_memory = memory_info.rss / (1024 * 1024)  # 转换为 MBvms_memory = memory_info.vms / (1024 * 1024)  # 转换为 MBprint(f"应用程序 {target_app_name}:CPU 使用率 {cpu_percent}%,物理内存占用 {rss_memory}MB,虚拟内存占用 {vms_memory}MB")time.sleep(5)

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

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

相关文章

Could not find com.mapbox.mapboxsdk:mapbox-android-accounts:0.7.0.解决

AndroidStudio编译APK出现如下错误: Could not find com.mapbox.mapboxsdk:mapbox-android-accounts:0.7.0. 出现上面错误原因是因为没有打开对应的仓库导致的, 手动添加如下创建地址可解决: maven { url https://maven.aliyun.com/repos…

Windows远程Kylin系统-xrdp

Windows远程Kylin系统-xrdp 一. 查看开放端口 查看是否有3389端口二. 安装xrdp Kylin对应的是centos8 下载链接:https://rhel.pkgs.org/8/epel-x86_64/xrdp-0.10.1-1.el8.x86_64.rpm.html rpm -Uvh 包名 systemctl start xrdp 启动服务 systemctl enable xrdp …

【HTML5】html5开篇基础(4)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

解决问题AttributeError: “safe_load“ has been removed, use

解决问题AttributeError: "safe_load" has been removed, use~ 1. 问题描述2. 解决方法 1. 问题描述 在复现cdvae代码时,运行 python scripts/compute_metrics.py --root_path MODEL_PATH --tasks recon gen opt评估模型时,出现以下问题。 …

Python批量下载PPT模块并实现自动解压

日常工作中,我们总是找不到合适的PPT模板而烦恼。即使有免费的网站可以下载,但是一个一个地去下载,然后再批量解压进行查看也非常的麻烦,有没有更好方法呢? 今天,我们利用Python来爬取一个网站上的PPT&…

【ios】---swift开发从入门到放弃

swift开发从入门到放弃 环境swift入门变量与常量类型安全和类型推断print函数字符串整数双精度布尔运算符数组集合set字典区间元祖可选类型循环语句条件语句switch语句函数枚举类型闭包数组方法结构体 环境 1.在App Store下载Xcode 2.新建项目(可以先使用这个&…

Hadoop HDFS命令操作实例

一.创建与查看HDFS目录 每次重启后,Jps和java -version执行出来的结果不符合就使用 source ~/.bash_profile 是在 Unix/Linux 系统上用来重新加载用户的 Bash 配置文件 ~/.bash_profile 的命令。这条命令的作用是使得当前的 Bash 环境重新读取并应用 ~/.bash_pro…

PHP安装后Apache无法运行的问题

问题 按照网上教程php安装点击跳转教程,然后修改Apache的httpd.conf文件,本来可以运行的Apache,无法运行了 然后在"C:\httpd-2.4.62-240904-win64-VS17\Apache24\logs\error.log"(就是我下载Apache的目录下的logs中&am…

当AI成为作家,人工智能在写作领域的崛起

AI写作技术的应用正在多个领域展现出其强大的潜力和价值,它不仅极大地提升了内容创作的效率,还为创作者提供了一个全新的创作伙伴。 随着技术的进步,AI写作工具越来越能够理解复杂的语境和用户需求,帮助创作者生成高质量的内容。…

排水系统C++

题目: 样例解释: 1 号结点是接收口,4,5 号结点没有排出管道,因此是最终排水口。 1 吨污水流入 1 号结点后,均等地流向 2,3,5 号结点,三个结点各流入 1/3 吨污水。 2 号结点流入的 1/3​ 吨污水将均等地流向…

深度学习与数学归纳法

最近发现,深度学习可以分为两个主要的阶段,分别是前向推理以及反向传播,分别对应着网络的推理和参数训练两个步骤。其中推理有时候也称为归纳推理。 在做参数训练的时候,本质上是在利用历史数据求网络参数的先验分布; …

Java 基础语法 Day10

一、异常 1.1异常的基本处理 1.抛出异常:throw 2.捕获异常:try-catch 1.2异常的作用 1.定位程序bug的关键信息 2.可以作为方法内部的一种特殊返回值,通知给上层调用,方便处理 //需求:将两个数的除返回 public cla…

音视频入门基础:FLV专题(9)——Script Tag简介

一、SCRIPTDATA 根据《video_file_format_spec_v10_1.pdf》第75页到76页,如果某个Tag的Tag header中的TagType值为18,表示该Tag为Script Tag(脚本Tag,又称Data Tag、SCRIPTDATA tag)。这时如果Filter的值不为1表示未加…

UG NX二次开发(C++)-建模-采用NXOpen获取拉伸特征的信息

文章目录 1、前言2、创建一个特征3 采用NXOpen来实现拉伸特征信息的获取1、前言 UG NX二次开发过程中,大部分初学者喜欢用UFun函数来实现UG NX二次开发的功能,因为相较于NXOpen,UFun函数简单易懂;但是有时UFun函数如果初始值设置不好,出现的错误也比较难排查。比如对于拉…

Spark SQL分析层优化

导读:本期是《深入浅出Apache Spark》系列分享的第四期分享,第一期分享了Spark core的概念、原理和架构,第二期分享了Spark SQL的概念和原理,第三期则为Spark SQL解析层的原理和优化案例。本次分享内容主要是Spark SQL分析层的原理…

Redis篇(Redis原理 - 数据结构)(持续更新迭代)

目录 一、动态字符串 二、intset 三、Dict 1. 简介 2. Dict的扩容 3. Dict的rehash 4. 知识小结 四、ZipList 1. 简介 2. ZipListEntry 3. Encoding编码 五、ZipList的连锁更新问题 六、QuickList 七、SkipList 八、RedisObject 1. 什么是 redisObject 2. Redi…

用 API 实现 AI 视频摘要:动手制作属于你的 AI 视频小助手

AI 视频摘要想必你一定不陌生,在各大视频平台,比如 B 站,评论区的 AI 视频小助手就如雨后春笋般遍地都是。 今天,让我们来填了这“护城河”,站到墙上看一看它的全貌。 简而言之,AI 视频摘要的工作流程如下&…

基于Spring Boot+Unipp的中考体测训练小程序(协同过滤算法、图形化分析)【原创】

🎈系统亮点:协同过滤算法、图形化分析; 一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构:B/S架构 运行环境:win10/win11、jdk17 前端: 技术:框…

研究生如何利用ChatGPT帮助开展日常科研工作?

小白可做!全自动AI影视解说一键成片剪辑工具https://docs.qq.com/doc/DYnl6d0FLdHp0V2ll 作为当代研究生,科研工作三部曲----读文献、开组会、数据分析。无论哪一个,都令研究生们倍感头疼,简直就是梦魇。每当看到导师发来的消息&a…

AI面试指南:AI工具总结评测,助力求职季

AI面试指南:AI工具总结评测,助力求职季 摘要: 在竞争激烈的AI领域秋招季,准备充分并借助高效工具是提升面试通过率的关键。本文主要介绍一些针对秋招的AI面试工具和学习资源,分为简历优化、面试助手、手撕代码练习三个…