Python标准库学习之psutil内存详解
作者:朱小五是凹凸君呀 发布时间:2023-09-14 21:33:35
人生苦短,快学Python!
今天介绍的是psutil
模块,它是一个跨平台库 https://github.com/giampaolo/psutil
命令行下通过pip安装:
pip install psutil
如果跟我一样安装的是Anaconda,则剩下这步了,因为自带了。
顾名思义
psutil = process and system utilities
它专门用来获取操作系统以及硬件相关的信息,比如:CPU、内存、磁盘、网络、进程管理等。
查询CPU信息
先导入psutil
模块,获取CPU的信息数据。
import psutil
# CPU逻辑数量
psutil.cpu_count()
# CPU物理核心
psutil.cpu_count(logical=False)
# 统计CPU的用户/系统/空闲时间
psutil.cpu_times()
# interval:每隔0.5s刷新一次
# percpu:查看所有的cpu使用率
for x in range(5):
print(psutil.cpu_percent(interval=0.5, percpu=True))
输出结果:
注:大家如果对jupyter notebook 同时输出多个变量感兴趣,可以查看这篇文章
《15个应该掌握的Jupyter Notebook使用技巧(小结)》
查询内存信息
输出内存使用情况(总内存、可用内存、内存使用率、已使用内存)。
psutil.virtual_memory()
比如上面输出的total=16499146752
即为总内存16G,已使用内存/总内存= 76.0%(内存使用率)。
查询磁盘信息
可以通过psutil获取磁盘分区、磁盘使用率和磁盘IO信息。
# 磁盘分区信息
psutil.disk_partitions()
# 磁盘使用情况
psutil.disk_usage('/')
# 磁盘IO
psutil.disk_io_counters()
其中,返回的IO信息指标有磁盘IO信息
read_count
(读IO数)
write_count
(写IO数)
read_bytes
(IO写字节数)
read_time
(磁盘读时间)
write_time
(磁盘写时间)
查询网络信息
使用psutil
库查询网络读写字节/包的个数。
psutil.net_io_counters()
其中,返回的数据指标有
btes_sent
: 发送的字节数
bytes_recv
: 接收的字节数
packets_sent
: 发送的包数据量
packets_recv
: 接收的包数据量
errin
: 接收包时, 出错的次数
errout
: 发送包时, 出错的次数
dropin
: 接收包时, 丢弃的次数
dropout
: 发送包时, 丢弃的次数
除此以外,还有很多获取网络接口和网络连接信息的函数。
比如
psutil.net_if_addrs()
获取网络接口信息
psutil.net_if_stats()
获取网络接口状态等。
查询进程信息
最后,使用psutil
模块也能获取所有进程的详细信息数据!
psutil.pids() # 所有进程ID
返回的结果包括了所有进程的ID(pid)。
根据 pid 可以获取一个进程对应的 Process 对象,而这个对象里面包含了该进程的全部数据。
下面我们指定进程ID=113408,其实就是当前Python交互环境,来获取该进程的信息。
# 获取指定进程ID=113408,其实就是当前Python交互环境
p = psutil.Process(113408)
# 进程名称
p.name()
# 进程的exe路径
p.exe()
# 进程的工作目录
p.cwd()
# 进程启动的命令行
p.cmdline()
# 当前进程id
p.pid
总而言之,psutil
使得我们可以轻松用Python程序获取各类系统信息。
本文只介绍了该模块的安装和基本使用方法,后续大家想了解更多详情,可以参考psutil的官 https://github.com/giampaolo/psutil
以上就是Python标准库学习之psutil内存详解的详细内容,更多关于Python标准库的资料请关注脚本之家其它相关文章!
来源:https://blog.csdn.net/zhuxiao5/article/details/120016106


猜你喜欢
- 1.决定大小写是否敏感的参数在 MySQL 中,数据库与 data 目录中的目录相对应。数据库中的每个表都对应于数据库目录中的至少一个文件(
- 目录1 作用2 安装3 所有要运行的命令都放在 manager.py 中4 三种方式 创建命令4.1 方式一 创建 Command子类4.2
- 打开CMD命令 执行:sqlcmd/? 这是sqlcmd命令的一些帮助信息 通过上面可以知道怎么连数据库了 执行:sqlcmd -S 服务器
- 一直都是简单去js实现cookie的一些操作,今天把js对cookie操作系统的整理了一遍,包括:js读取cookie,js添加cookie
- 因为函数或类都是对象,它们也能被四处传递。它们又是可变对象,可以被更改。在函数或类对象创建后但绑定到名字前更改之的行为为装饰(decorat
- 从Python字符串中删除最后一个分号或者逗号第一种方法使用 str.rstrip() 方法从字符串中删除最后一个逗号,例如 new_str
- 首先有一段以下结构体的定义type User struct {UserName stringUserId int `name:
- 1. 字符编码简介1.1. ASCIIASCII(American Standard Code for Information Interc
- list、tuple等都是可迭代对象,我们可以通过iter()函数获取这些可迭代对象的迭代器。然后我们可以对获取到的迭代器不断使⽤next(
- 实例如下:from win32com.client import Dispatch import win32com.client
- YAHOO.util.Subscriber 与 YAHOO.util.CustomEvent。1. YAHOO
- 1.声明后未赋值,表现相同//一个例子'use strict';(function() { var varTest; let
- 1.mysql多实例mysql多实例是指在一台或多台机器上跑多个mysql数据库,大大节省开销的费用,方便管理数据内容。2.环境设备系统版本
- 论坛里面有不少人在使用Javascript编写Asp,经常有人在论坛提问,为什么Asp对象在对比指定值时返回结果不对?现在在这里给大家写点关
- 前言虽然各种编程语言之间大部分语法存在共通的地方,但是在一些细节的处理上还是千差万别才接触Python不久(之前是学Java的),实在想吐槽
- 本文实例讲述了Python PyInstaller库基本使用方法。分享给大家供大家参考,具体如下:概述将.py源码转换成无需源代码的可执行文
- #!/usr/bin/python import os import time im
- Jupyter Notebook运行代码无反应在学习人脸识别知识的过程中需要用到Anaconda 、Jupyter Notebook.我在启
- 学习目标根据原型设计编译自动化数据生成器,熟悉wxPython的基本用法。界面原型设计界面原型设计分析输入参数:最大长度最小长度组成规则多少
- 下面是例子分析表A记录如下: aID aNum