Python怎么使用psutil获取系统信息

发布时间:2023-05-17 11:21:34 作者:zzz
来源:亿速云 阅读:131

Python怎么使用psutil获取系统信息

目录

  1. 简介
  2. 安装psutil
  3. 获取CPU信息
  4. 获取内存信息
  5. 获取磁盘信息
  6. 获取网络信息
  7. 获取进程信息
  8. 获取系统信息
  9. 获取传感器信息
  10. 总结

简介

psutil 是一个跨平台的 Python 库,用于检索系统信息和进程管理。它提供了简单易用的接口来获取 CPU、内存、磁盘、网络、传感器等系统信息,并且支持 Windows、Linux、macOS 等多种操作系统。本文将详细介绍如何使用 psutil 获取系统信息。

安装psutil

在开始使用 psutil 之前,首先需要安装它。可以通过 pip 来安装:

pip install psutil

安装完成后,可以通过以下代码来验证是否安装成功:

import psutil
print(psutil.__version__)

如果输出了 psutil 的版本号,说明安装成功。

获取CPU信息

CPU使用率

psutil 提供了 cpu_percent() 方法来获取 CPU 的使用率。该方法可以返回当前 CPU 的使用率百分比。

import psutil

# 获取当前CPU使用率
cpu_usage = psutil.cpu_percent(interval=1)
print(f"CPU使用率: {cpu_usage}%")

interval 参数表示采样间隔时间,单位为秒。如果不指定 intervalcpu_percent() 会立即返回一个值,但这个值可能不准确。

CPU核心数

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 核心数。

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

磁盘IO

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

网络IO

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 来获取系统信息,并可以在实际项目中灵活运用。

希望本文对你有所帮助,感谢阅读!

推荐阅读:
  1. 怎么在python3中基于用户实现协同过滤
  2. python控制windows剪贴板,向剪贴板中写入图片的实例

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python psutil

上一篇:Python基础之模块怎么使用

下一篇:Python如何实现获取网页内容及自动填表单与登录功能

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》