专栏首页快学PythonPython标准库:psutil 轻松获取各种系统信息!

Python标准库:psutil 轻松获取各种系统信息!

人生苦短,快学Python!

请关注系列文章——有用有趣的 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 同时输出多个变量感兴趣,可以查看这篇文章《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库

本文分享自微信公众号 - 快学Python(kxpython),作者:快快

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-07-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python获取系统内存占用信息的实例方法

    psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁...

    砸漏
  • pustil - 获取系统信息库

    运维工程师经常使用 Python 编写脚本程序来做监控系统运行的状态。如果自己手动使用 Python 的标准库执行系统命令来获取信息,会显得非常麻烦。既要兼容不...

    猴哥yuri
  • Python 系统资源信息获取工具,你用过没?

    psutil(process and system utilities)是一个跨平台的库,github、官方文档

    崔庆才
  • python简单的监控脚本-利用sock

    python简单的监控脚本-利用socket、psutil阻止远程主机运行特定程序

    py3study
  • Python的psutil模块监控内存代码

    1. psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内...

    里克贝斯
  • Python常用库-Psutil

    介绍一个处理进程的实用工具,这个是一个第三方库。应用主要有类似ps、cd、top,还有查看硬盘、内存使用情况等。 推荐的理由主要有 2 个,第一个是跨平台的,...

    叉叉敌
  • Linux实际内存占用率算法,以及使用Python实现内存监控

    这两天我们的一个核心系统,一套集群,逐台开始报警,内容是内存占用超阈值。按说这应该是一个非常紧急且需要立即处理的报警,但实际是不是这样,待我们拨云见日。

    bisal
  • Python常用库-Psutil

    介绍一个处理进程的实用工具,这个是一个第三方库。应用主要有类似ps、cd、top,还有查看硬盘、内存使用情况等。

    叉叉敌
  • 火了!这款免费、开源的终端资源监控器是真的牛逼...

    对于系统运维、维护或开发人员来说,能很好、清楚的了解系统各方面资源的使用情况,这也是一个IT人员必备的技能之一。

    民工哥
  • python3 在不同操作系统安装第三方

    最近在看python3 ,有很多功能需要安装第三方库 不同的操作系统安装方法经常出现错误, 于是自己慢慢研究了不同操作系统的安装办法 用psutil模块做个例子...

    py3study
  • 利用Python如何实时检测自身内存占用

    最近在做文本统计,用 Python 实现,遇到了一个比较有意思的难题——如何保存统计结果。

    砸漏
  • Day22psutil&图形界面

    psutil 用Python来编写脚本简化日常的运维工作是Python的一个重要用途。 在Python中获取系统信息的一个好办法是使用psutil这个第三方模...

    林清猫耳
  • Bashtop:一款功能强大的LinuxOSXFreeBSD资源监控工具

    Bashtop是一款针对Linux/OSX/FreeBSD的基于终端的资源监控实用程序,虽然该工具是一个命令行工具,但它也提供了非常美观的UI界面,并且可以直观...

    FB客服
  • python获取Linux信息

      刚开始学习Python,用Python写了一个获取Linux服务器信息的脚本,在debian和centos上测试通过。首先需要安装一个psutil库,在安装...

    py3study
  • mtools介绍与安装

    mtools是一组帮助脚本,可用于解析、过滤和可视化MongoDB的日志文件(mongod,mongos)。 mtools还包括mlaunch,您可以使用mla...

    MongoDB中文社区
  • 系统管理员必备,服务器监控的轻量级工具你知道哪些?

    服务器监控工具对于IT基础架构性能、可视化和系统稳定至关重要。合适的工具能够帮助系统管理员面对服务器故障、应用缓慢、停机、内存泄露和配置依赖等挑战。

    用户7261497
  • Python监控服务器利器--psuti

    服务器的监控通过安装一些常用的监控软件之外,有时也需要运行一些shell或Python脚本;shell下可以使用系统自带的ps/free/top/df等shel...

    py3study
  • python学习-psuti模块

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

    py3study
  • Python自动化运维

    total(内存总数)、used(已使用的内存数)、free(空闲内存数)、buffers(缓冲使用数)、cache(缓存使用数)、swap(交换分区使用数)

    py3study

扫码关注云+社区

领取腾讯云代金券