您好,登录后才能下订单哦!
psutil
是一个跨平台的 Python 库,用于检索系统信息和进程管理。它提供了简单易用的接口来获取 CPU、内存、磁盘、网络、传感器等系统信息,并且支持 Windows、Linux、macOS 等多种操作系统。本文将详细介绍如何使用 psutil
获取系统信息。
在开始使用 psutil
之前,首先需要安装它。可以通过 pip
来安装:
pip install psutil
安装完成后,可以通过以下代码来验证是否安装成功:
import psutil
print(psutil.__version__)
如果输出了 psutil
的版本号,说明安装成功。
psutil
提供了 cpu_percent()
方法来获取 CPU 的使用率。该方法可以返回当前 CPU 的使用率百分比。
import psutil
# 获取当前CPU使用率
cpu_usage = psutil.cpu_percent(interval=1)
print(f"CPU使用率: {cpu_usage}%")
interval
参数表示采样间隔时间,单位为秒。如果不指定 interval
,cpu_percent()
会立即返回一个值,但这个值可能不准确。
psutil
提供了 cpu_count()
方法来获取 CPU 的核心数。
import psutil
# 获取CPU核心数
cpu_count = psutil.cpu_count(logical=True)
print(f"CPU核心数: {cpu_count}")
logical=True
表示返回逻辑 CPU 核心数(包括超线程核心),logical=False
表示返回物理 CPU 核心数。
psutil
提供了 cpu_times()
方法来获取 CPU 的时间信息,包括用户态时间、系统态时间、空闲时间等。
import psutil
# 获取CPU时间信息
cpu_times = psutil.cpu_times()
print(f"用户态时间: {cpu_times.user}")
print(f"系统态时间: {cpu_times.system}")
print(f"空闲时间: {cpu_times.idle}")
psutil
提供了 virtual_memory()
方法来获取物理内存的使用情况。
import psutil
# 获取物理内存信息
mem_info = psutil.virtual_memory()
print(f"总内存: {mem_info.total / 1024 / 1024:.2f} MB")
print(f"可用内存: {mem_info.available / 1024 / 1024:.2f} MB")
print(f"已使用内存: {mem_info.used / 1024 / 1024:.2f} MB")
print(f"内存使用率: {mem_info.percent}%")
psutil
提供了 swap_memory()
方法来获取交换内存(虚拟内存)的使用情况。
import psutil
# 获取交换内存信息
swap_info = psutil.swap_memory()
print(f"总交换内存: {swap_info.total / 1024 / 1024:.2f} MB")
print(f"已使用交换内存: {swap_info.used / 1024 / 1024:.2f} MB")
print(f"交换内存使用率: {swap_info.percent}%")
psutil
提供了 disk_partitions()
方法来获取磁盘分区信息。
import psutil
# 获取磁盘分区信息
partitions = psutil.disk_partitions()
for partition in partitions:
print(f"设备: {partition.device}")
print(f"挂载点: {partition.mountpoint}")
print(f"文件系统类型: {partition.fstype}")
print(f"挂载选项: {partition.opts}")
print()
psutil
提供了 disk_usage()
方法来获取指定路径的磁盘使用情况。
import psutil
# 获取磁盘使用情况
usage = psutil.disk_usage('/')
print(f"总空间: {usage.total / 1024 / 1024:.2f} MB")
print(f"已用空间: {usage.used / 1024 / 1024:.2f} MB")
print(f"可用空间: {usage.free / 1024 / 1024:.2f} MB")
print(f"使用率: {usage.percent}%")
psutil
提供了 disk_io_counters()
方法来获取磁盘的 IO 统计信息。
import psutil
# 获取磁盘IO统计信息
io_counters = psutil.disk_io_counters()
print(f"读取次数: {io_counters.read_count}")
print(f"写入次数: {io_counters.write_count}")
print(f"读取字节数: {io_counters.read_bytes / 1024 / 1024:.2f} MB")
print(f"写入字节数: {io_counters.write_bytes / 1024 / 1024:.2f} MB")
psutil
提供了 net_if_addrs()
方法来获取网络接口的地址信息。
import psutil
# 获取网络接口地址信息
if_addrs = psutil.net_if_addrs()
for interface, addresses in if_addrs.items():
print(f"接口: {interface}")
for address in addresses:
print(f" 地址族: {address.family}")
print(f" 地址: {address.address}")
print(f" 网络掩码: {address.netmask}")
print(f" 广播地址: {address.broadcast}")
print()
psutil
提供了 net_connections()
方法来获取系统的网络连接信息。
import psutil
# 获取网络连接信息
connections = psutil.net_connections(kind='inet')
for conn in connections:
print(f"协议: {conn.type}")
print(f"本地地址: {conn.laddr}")
print(f"远程地址: {conn.raddr}")
print(f"状态: {conn.status}")
print()
psutil
提供了 net_io_counters()
方法来获取网络 IO 统计信息。
import psutil
# 获取网络IO统计信息
io_counters = psutil.net_io_counters()
print(f"发送字节数: {io_counters.bytes_sent / 1024 / 1024:.2f} MB")
print(f"接收字节数: {io_counters.bytes_recv / 1024 / 1024:.2f} MB")
print(f"发送包数: {io_counters.packets_sent}")
print(f"接收包数: {io_counters.packets_recv}")
psutil
提供了 pids()
方法来获取当前系统中所有进程的 PID 列表。
import psutil
# 获取所有进程的PID列表
pids = psutil.pids()
print(f"进程数量: {len(pids)}")
psutil
提供了 Process
类来获取指定进程的详细信息。
import psutil
# 获取指定进程的详细信息
pid = 1 # 以PID为1的进程为例
process = psutil.Process(pid)
print(f"进程名称: {process.name()}")
print(f"进程状态: {process.status()}")
print(f"进程创建时间: {process.create_time()}")
print(f"进程CPU使用率: {process.cpu_percent(interval=1.0)}%")
print(f"进程内存使用: {process.memory_info().rss / 1024 / 1024:.2f} MB")
psutil
提供了多种方法来获取进程的资源使用情况,包括 CPU、内存、文件描述符等。
import psutil
# 获取进程资源使用情况
pid = 1 # 以PID为1的进程为例
process = psutil.Process(pid)
print(f"进程CPU使用率: {process.cpu_percent(interval=1.0)}%")
print(f"进程内存使用: {process.memory_info().rss / 1024 / 1024:.2f} MB")
print(f"进程打开的文件描述符数量: {process.num_fds()}")
psutil
提供了 boot_time()
方法来获取系统的启动时间。
import psutil
from datetime import datetime
# 获取系统启动时间
boot_time = psutil.boot_time()
print(f"系统启动时间: {datetime.fromtimestamp(boot_time)}")
psutil
提供了 users()
方法来获取当前登录系统的用户信息。
import psutil
# 获取系统用户信息
users = psutil.users()
for user in users:
print(f"用户名: {user.name}")
print(f"终端: {user.terminal}")
print(f"登录时间: {user.started}")
print()
psutil
提供了 platform()
方法来获取系统的平台信息。
import psutil
# 获取系统平台信息
platform_info = psutil.platform()
print(f"系统平台: {platform_info}")
psutil
提供了 sensors_temperatures()
方法来获取系统的温度传感器信息。
import psutil
# 获取温度传感器信息
temps = psutil.sensors_temperatures()
for name, entries in temps.items():
print(f"传感器: {name}")
for entry in entries:
print(f" 标签: {entry.label}")
print(f" 当前温度: {entry.current}°C")
print(f" 最高温度: {entry.high}°C")
print(f" 临界温度: {entry.critical}°C")
print()
psutil
提供了 sensors_fans()
方法来获取系统的风扇速度信息。
import psutil
# 获取风扇速度信息
fans = psutil.sensors_fans()
for name, entries in fans.items():
print(f"风扇: {name}")
for entry in entries:
print(f" 标签: {entry.label}")
print(f" 当前速度: {entry.current} RPM")
print()
psutil
提供了 sensors_battery()
方法来获取系统的电池信息。
import psutil
# 获取电池信息
battery = psutil.sensors_battery()
if battery:
print(f"电池百分比: {battery.percent}%")
print(f"电源是否连接: {battery.power_plugged}")
print(f"剩余时间: {battery.secsleft} 秒")
else:
print("未检测到电池")
psutil
是一个功能强大且易于使用的 Python 库,能够帮助我们轻松获取系统的各种信息。无论是 CPU、内存、磁盘、网络,还是进程、传感器信息,psutil
都提供了丰富的接口来满足我们的需求。通过本文的介绍,相信你已经掌握了如何使用 psutil
来获取系统信息,并可以在实际项目中灵活运用。
希望本文对你有所帮助,感谢阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。