前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python标准库:psutil 轻松获取各种系统信息!

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

作者头像
快学Python
发布2021-08-09 14:46:00
3.3K0
发布2021-08-09 14:46:00
举报
文章被收录于专栏:快学Python快学Python快学Python

人生苦短,快学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库

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 快学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 查询CPU信息
  • 查询内存信息
  • 查询磁盘信息
  • 查询网络信息
  • 查询进程信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档