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

文章目录

  • 前言
  • 一、psutil包
    • 1.1 安装psutil包
    • 1.2 psutil 使用方式
      • 获取CPU使用率
      • 获取内存使用情况
      • 将内存的获取的使用情况变成GB和MB
      • 获取磁盘使用情况
      • 磁盘内存进行转换
      • 获取网络信息
      • 网络info
  • 二、platform
    • 2.1 platform的介绍
    • 2.2 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)

【Python第三方包】快速获取硬件信息和使用情况(psutil、platform)_第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()

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

直接调用函数即可!

将内存的获取的使用情况变成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单位,并打印出结果。你可以根据需要对这些值进行进一步处理或显示。

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

获取磁盘使用情况

disk_info = psutil.disk_usage('/')

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

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")

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

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

获取网络信息

network_info = psutil.net_io_counters()

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

网络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")

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

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

二、platform

2.1 platform的介绍

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

2.2 platform 使用方式

获取操作系统的名称

platform.system()

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

获取架构的名称

platform.architecture()

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


总结

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

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

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

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

你可能感兴趣的:(Python第三方包的使用,python,数据库,java,c语言,C++11,第三方包,pyqt)