【Python第三方包】快速获取硬件信息和使用情况(psutil、platform)


前言

在开发过程中,了解系统的硬件信息和使用情况对于优化性能和解决问题至关重要。Python提供了一些功能强大的第三方包,可以轻松地获取硬件信息和使用情况。本文将介绍两个常用的包:psutil和platform。


一、psutil包

1.1 安装psutil包

我们可以使用

pip install psutil -i https://pypi.tuna.tsinghua.edu.cn/simple

如果你不想使用镜像可以这样安装:

pip install psutil 

如果你是ubuntu高版本用户,则只能使用:

pip3 install psutil -i https://pypi.tuna.tsinghua.edu.cn/simple

这个命令进行安装

1.2 psutil 使用方式

获取CPU使用率

psutil.cpu_percent(interval=1)

在这里插入图片描述

在psutil.cpu_percent(interval=1)函数中,interval参数代表采样的时间间隔,单位是秒。这参数的作用是指定在多长时间内计算CPU的使用率。

具体来说,当你调用psutil.cpu_percent(interval=1)时,它会在接下来的1秒内监测CPU的使用情况,并返回这段时间内的平均CPU使用率。这个值通常以百分比的形式表示,表示CPU在指定的时间间隔内被使用了多少百分比。这个函数可以用来监测系统的CPU负载,特别是在需要实时监测系统性能的应用中,以便及时采取行动或记录性能数据。

你可以根据具体的需求来调整interval参数的值,以获取不同时间间隔内的CPU使用率数据。较短的时间间隔可以提供更实时的数据,但可能会引入更多的噪音,而较长的时间间隔则会提供更平滑的数据,但可能错过更短时间内的性能波动。

获取内存使用情况

memory_info = psutil.virtual_memory()

在这里插入图片描述

直接调用函数即可!

将内存的获取的使用情况变成GB和MB

psutil.virtual_memory()返回的是一个包含系统虚拟内存信息的命名元组,其中包括各种内存指标的值。这些值的单位通常是字节(bytes)。如果你希望将这些值转换成更常见的单位,如MB(兆字节)或GB(千兆字节),你可以使用以下方式进行转换:

从psutil.virtual_memory()返回的命名元组中提取所需的值。
将字节转换为MB或GB,考虑到1MB = 1024KB和1GB = 1024MB。
以下是一个示例代码,展示如何将psutil.virtual_memory()的返回值转换为MB和GB:

import psutil

# 获取系统虚拟内存信息
memory_info = psutil.virtual_memory()

# 提取总内存、已使用内存、空闲内存的值(单位为字节)
total_memory_bytes = memory_info.total
used_memory_bytes = memory_info.used
free_memory_bytes = memory_info.available  # 注意这里使用available而不是free

# 转换为MB和GB
total_memory_mb = total_memory_bytes / 1024**2  # 转换成MB
used_memory_mb = used_memory_bytes / 1024**2  # 转换成MB
free_memory_mb = free_memory_bytes / 1024**2  # 转换成MB

total_memory_gb = total_memory_bytes / 1024**3  # 转换成GB
used_memory_gb = used_memory_bytes / 1024**3  # 转换成GB
free_memory_gb = free_memory_bytes / 1024**3  # 转换成GB

# 打印转换后的内存信息
print(f"总内存:{total_memory_mb:.2f} MB / {total_memory_gb:.2f} GB")
print(f"已使用内存:{used_memory_mb:.2f} MB / {used_memory_gb:.2f} GB")
print(f"空闲内存:{free_memory_mb:.2f} MB / {free_memory_gb:.2f} GB")
这个代码会将内存信息从字节单位转换为MB和GB单位,并打印出结果。你可以根据需要对这些值进行进一步处理或显示。

在这里插入图片描述

获取磁盘使用情况

disk_info = psutil.disk_usage('/')

在这里插入图片描述

psutil.disk_usage(‘/’) 函数用于获取指定路径(在这里是根目录)的磁盘使用情况信息。这个函数的参数是一个字符串,表示要查询的磁盘分区的路径。在这里,‘/’ 表示根目录,通常代表整个根文件系统。

磁盘内存进行转换

返回的对象包含有关磁盘使用情况的信息,包括总容量、已使用容量、可用容量等。这些值通常以字节为单位。如果你想将这些值转换为更常见的单位,如GB(千兆字节)、MB(兆字节)或TB(千兆字节),你可以按以下方法进行转换:

从 psutil.disk_usage(‘/’) 返回的对象中提取所需的值。
将字节转换为GB、MB或TB,考虑到 1GB = 1024MB、1MB = 1024KB、1TB = 1024GB。
以下是一个示例代码,展示如何将 psutil.disk_usage(‘/’) 返回的磁盘使用情况信息转换为GB、MB和TB:

import psutil

# 获取根目录磁盘使用情况信息
disk_info = psutil.disk_usage('/')

# 提取总容量、已使用容量、可用容量的值(单位为字节)
total_bytes = disk_info.total
used_bytes = disk_info.used
free_bytes = disk_info.free

# 转换为GB、MB、TB
total_gb = total_bytes / (1024**3)  # 转换成GB
used_gb = used_bytes / (1024**3)  # 转换成GB
free_gb = free_bytes / (1024**3)  # 转换成GB

# 打印转换后的磁盘使用情况信息
print(f"总容量:{total_gb:.2f} GB")
print(f"已使用容量:{used_gb:.2f} GB")
print(f"可用容量:{free_gb:.2f} GB")

在这里插入图片描述

这段代码将磁盘使用情况信息从字节单位转换为GB单位,并打印出结果。你可以根据需要对这些值进行进一步处理或显示。

获取网络信息

network_info = psutil.net_io_counters()

在这里插入图片描述

网络info

psutil.net_io_counters() 函数返回一个包含网络IO计数器信息的命名元组,包括各种网络接口的输入和输出的统计数据。以下是其中包含的主要信息以及一些示例值:

bytes_sent:已发送的字节数。
bytes_recv:已接收的字节数。
packets_sent:已发送的数据包数量。
packets_recv:已接收的数据包数量。
errin:接收时的错误数据包数量。
errout:发送时的错误数据包数量。
dropin:接收时丢弃的数据包数量。
dropout:发送时丢弃的数据包数量。
示例代码,演示如何获取并列出psutil.net_io_counters() 返回值的信息:

import psutil

# 获取网络IO计数器信息
network_info = psutil.net_io_counters()

# 提取信息
bytes_sent = network_info.bytes_sent
bytes_recv = network_info.bytes_recv
packets_sent = network_info.packets_sent
packets_recv = network_info.packets_recv
errin = network_info.errin
errout = network_info.errout
dropin = network_info.dropin
dropout = network_info.dropout

# 打印信息
print(f"已发送字节数: {bytes_sent} bytes")
print(f"已接收字节数: {bytes_recv} bytes")
print(f"已发送数据包数量: {packets_sent} packets")
print(f"已接收数据包数量: {packets_recv} packets")
print(f"接收时错误数据包数量: {errin} packets")
print(f"发送时错误数据包数量: {errout} packets")
print(f"接收时丢弃的数据包数量: {dropin} packets")
print(f"发送时丢弃的数据包数量: {dropout} packets")

在这里插入图片描述

这些信息有助于监测系统的网络活动,包括已发送和已接收的数据量以及网络错误和数据包丢弃情况。这对于网络性能分析和故障排除非常有用。

二、platform

2.1 platform的介绍

platform 是Python内置的库,提供了获取系统一般信息的方法,如操作系统、硬件架构等。
该库易于使用,可以快速获取与操作系统和硬件相关的关键信息。

2.2 platform 使用方式

获取操作系统的名称

platform.system()

在这里插入图片描述

获取架构的名称

platform.architecture()

在这里插入图片描述


总结

通过使用第三方包psutil和platform,我们可以轻松地获取硬件信息和使用情况。psutil提供了丰富的接口,可以监控CPU、内存、磁盘和网络的使用情况。而platform库则提供了一种简单的方法来获取系统的一般信息,如操作系统和硬件架构。这些工具对于开发人员在性能优化、资源管理和故障排查等方面非常有用。

无论是开发桌面应用程序、服务器端应用还是系统工具,了解硬件信息和使用情况都是至关重要的。这些Python第三方包的使用方便且功能强大,可以帮助开发人员更好地了解系统的运行状况,从而优化应用程序的性能。

尽管本文介绍了psutil和platform这两个常用的包,但Python生态系统中还有其他相关的第三方包可供选择。根据具体的需求和使用场景,你可以进一步探索和尝试适合你项目的其他包。

希望本文能帮助你了解如何快速获取硬件信息和使用情况,为你的开发工作提供便利。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python第三方是由第三方公司或团队开发的,可以极大地提升Python开发效率。可以通过使用pip命令来安装第三方。 pip是Python第三方管理工具,可以帮助我们方便地安装、更新和卸载第三方。 一些常用的Python第三方括ipython,它是一个强大的Python交互式shell,支持变量自动补全和自动缩进。可以使用pip命令安装ipython,例如:pip install ipython。 对于安装第三方时可能遇到的网络问题,我们可以指定使用国内源来安装,比如使用清华大学的源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 名。 如果需要删除已安装的,可以使用pip uninstall 名命令。如果需要安装特定版本的,可以使用pip install 名==版本号来指定安装。 总结来说,Python第三方是由第三方公司或团队开发的,可以通过pip命令来安装、更新和卸载。常用的第三方有ipython等,可以提升Python开发效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【PythonPython ③ ( Python 第三方简介 | 安装第三方 | 命令行安装 | PyCharm 安装 | 设置代理 |...](https://blog.csdn.net/han1202012/article/details/131489379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Python中的第三方](https://blog.csdn.net/m0_48978908/article/details/119812004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人才程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值