网站首页 > 技术文章 正文

引言
在日常的软件开发和系统管理中,我们常常需要获取和处理系统的各种信息,例如CPU的使用率、内存的占用情况、磁盘的使用情况等等。而Python作为一门功能强大且易于学习的编程语言,提供了众多的第三方库来帮助我们简化这些任务。其中,psutil包就是一款非常实用的工具,它能够轻松地获取并处理系统的各种信息,极大地方便了我们的开发和管理工作。
一、安装psutil包
要使用psutil包,首先需要进行安装。在Python中,我们可以使用pip这个包管理工具来完成安装过程。打开终端或命令提示符窗口,并执行以下命令:
pip install psutil
二、获取系统信息
psutil包提供了丰富的接口来获取系统的各种信息。下面我们介绍几个常用的功能。
- 获取CPU的使用率
import psutil
cpu_percent = psutil.cpu_percent()
print("CPU使用率:", cpu_percent, "%")
上述代码中,我们使用psutil.cpu_percent()函数获取当前CPU的使用率,并将结果打印出来。psutil会根据一定的时间间隔来计算CPU的平均使用率,默认为1秒。
- 获取内存的占用情况
import psutil
mem = psutil.virtual_memory()
print("总内存:", mem.total)
print("已使用内存:", mem.used)
print("空闲内存:", mem.available)
通过调用psutil.virtual_memory()函数,我们可以获取当前系统的内存占用情况。返回的结果是一个包含了总内存、已使用内存和空闲内存等信息的命名元组。
- 获取磁盘的使用情况
import psutil
disk = psutil.disk_usage('/')
print("总磁盘空间:", disk.total)
print("已使用磁盘空间:", disk.used)
print("剩余磁盘空间:", disk.free)
上述代码中,我们使用psutil.disk_usage('/')函数获取根目录的磁盘使用情况。返回的结果同样是一个命名元组,包含了总磁盘空间、已使用磁盘空间和剩余磁盘空间等信息。
三、进程管理
除了获取系统信息外,psutil还提供了强大的进程管理功能,能够帮助我们监控和控制系统中的进程。下面我们介绍几个常用的功能。
- 获取当前运行的所有进程
import psutil
processes = psutil.process_iter()
for process in processes:
print("进程ID:", process.pid)
print("进程名称:", process.name())
通过`psutil.process_iter()`函数,我们可以获取当前运行的所有进程的迭代器。然后,我们可以通过迭代器遍历每个进程,并获取其进程ID和进程名称等信息。
- 根据进程ID获取进程信息
import psutil
pid = 1234 # 假设为某个进程的ID
process = psutil.Process(pid)
print("进程名称:", process.name())
print("进程状态:", process.status())
print("进程创建时间:", process.create_time())
上述代码中,我们使用`psutil.Process()`函数根据进程ID获取该进程的对象,并可以通过该对象获取进程的名称、状态和创建时间等信息。
- 杀死指定进程
import psutil
pid = 1234 # 假设为某个进程的ID
process = psutil.Process(pid)
process.kill()
通过调用进程对象的`kill()`方法,我们可以杀死指定的进程。
四、其他功能
除了上述介绍的功能外,psutil还提供了其他实用的功能,例如网络相关的信息获取、传感器信息获取等。这里简要介绍一下网络相关的功能。
- 获取网络连接信息
import psutil
connections = psutil.net_connections()
for conn in connections:
print("本地地址:", conn.laddr)
print("远程地址:", conn.raddr)
print("状态:", conn.status)
通过调用`psutil.net_connections()`函数,我们可以获取当前系统的网络连接信息。返回的结果是一个包含了本地地址、远程地址和状态等信息的命名元组。
- 获取网络接口信息
import psutil
interfaces = psutil.net_if_addrs()
for name, info in interfaces.items():
print("接口名称:", name)
for addr in info:
print("IP地址:", addr.address)
print("子网掩码:", addr.netmask)
述代码中,我们使用`psutil.net_if_addrs()`函数获取系统的网络接口信息。返回的结果是一个字典,其中键是接口名称,值是一个列表,包含了该接口的IP地址和子网掩码等信息。
总结
本文介绍了Python的psutil包的基本用法和常用功能。通过psutil包,我们可以轻松地获取系统的各种信息,包括CPU的使用率、内存的占用情况、磁盘的使用情况等。同时,psutil还提供了强大的进程管理功能,能够帮助我们监控系统中的进程,并可以进行进程的监控和控制。此外,psutil还提供了其他实用的功能,如网络连接信息的获取和网络接口信息的获取等。
- 上一篇: Python使用NiceGUI实现电脑摄像头画布监控
- 下一篇: 大神教你如何用python监听软件
猜你喜欢
- 2024-12-19 提高效率的 10 个 Python 调试技巧
- 2024-12-19 python-IO多路复用(select、poll、epoll)
- 2024-12-19 一篇文章搞懂 Python select 模块
- 2024-12-19 每个python人都离不开的12个python库
- 2024-12-19 使用 Python 和 OpenCV 进行面部识别 - 应用于监控、人脸门禁和考勤等
- 2024-12-19 使用 Python3 uWSGI 实现并发和监控的 Web 应用部署(44)
- 2024-12-19 Python 自动化: eip、cen监控数据对接到 grafana
- 2024-12-19 python 你需要知道的
- 2024-12-19 监控老板一举一动 99行python助你无风险摸鱼
- 2024-12-19 大神教你如何用python监听软件
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)