`psutil`是一个跨平台库

简介: `psutil`是一个跨平台库

一、引言

psutil是一个跨平台库,用于检索系统利用率(CPU、内存、磁盘、网络、传感器等)和运行中的进程信息。它提供了一个简单而一致的接口,用于获取这些信息,而无需考虑底层操作系统的差异。在Python中,psutil模块是系统监控和性能分析的有力工具。

二、安装psutil

首先,确保您已经安装了psutil模块。如果尚未安装,可以使用pip进行安装:

pip install psutil

三、代码示例与解释

1. 导入psutil模块

import psutil
import time

这里我们同时导入了time模块,以便在后续示例中使用sleep函数来模拟时间流逝。

2. 获取CPU使用率

def print_cpu_percent(interval=1):
    """
    打印CPU使用率。

    参数:
        interval (float): 两次采样之间的时间间隔(秒)。默认为1秒。

    返回:
        无返回值,但会打印CPU使用率。
    """
    print(f"CPU使用率: {psutil.cpu_percent(interval=interval)}%")

# 示例调用
print_cpu_percent()  # 立即返回自上次调用以来的CPU使用率(如果这是第一次调用,则可能不准确)
time.sleep(1)  # 等待1秒
print_cpu_percent(1)  # 等待1秒后返回CPU使用率

解释:

  • psutil.cpu_percent()函数用于获取CPU使用率。默认情况下,它返回自上次调用以来的CPU使用率(如果这是第一次调用,则可能不准确)。
  • 通过设置interval参数,我们可以让函数等待指定的时间间隔后再返回CPU使用率。这通常用于获取更准确的长时间内的平均CPU使用率。
  • 在示例中,我们首先调用print_cpu_percent()函数而不设置interval参数,以演示立即返回的结果可能不准确。然后,我们使用time.sleep(1)等待1秒,并再次调用print_cpu_percent(1)来获取并打印1秒内的平均CPU使用率。

3. 获取虚拟内存信息

def print_virtual_memory():
    """
    打印虚拟内存信息。

    参数:
        无

    返回:
        无返回值,但会打印虚拟内存信息。
    """
    mem = psutil.virtual_memory()
    print(f"总内存: {mem.total / (1024 ** 3):.2f} GB")
    print(f"已用内存: {mem.used / (1024 ** 3):.2f} GB")
    print(f"空闲内存: {mem.free / (1024 ** 3):.2f} GB")
    print(f"内存使用率: {mem.percent}%")

# 示例调用
print_virtual_memory()

解释:

  • psutil.virtual_memory()函数返回一个命名元组,其中包含有关系统虚拟内存的信息。这些信息包括总内存、已用内存、空闲内存、共享内存、缓存内存、可用内存和内存使用率。
  • 在示例中,我们调用psutil.virtual_memory()并将返回的对象存储在mem变量中。然后,我们打印出总内存、已用内存、空闲内存和内存使用率。注意,我们将内存大小从字节转换为GB(1GB = 1024^3字节),以便更容易阅读。

4. 获取磁盘使用情况

除了CPU和内存信息外,psutil还可以用于获取磁盘使用情况。以下是一个示例:

```python
def print_disk_usage(path='/'):
"""
打印指定路径的磁盘使用情况。

参数:
    path (str): 要检查磁盘使用情况的路径。默认为根目录。

返回:
    无返回值,但会打印磁盘使用情况。
"""
du = psutil.disk_usage(path)
print(f"路径: {path}")
print(f"总空间: {du.total / (1024 ** 3):.2f} GB")
print(f"已用空间: {du.used / (1024 ** 

处理结果:

一、引言

psutil是一个跨平台库,用于检索系统利用率(CPU、内存、磁盘、网络、传感器等)和运行中的进程信息。它提供了一个简单而一致的接口,用于获取这些信息,而无需考虑底层操作系统的差异。在Python中,psutil模块是系统监控和性能分析的有力工具。

二、安装psutil

首先,确保您已经安装了psutil模块。如果尚未安装,可以使用pip进行安装:
```bash

1. 导入psutil模块

```python

2. 获取CPU使用率

```python
"""
打印CPU使用率。
参数
interval (float)
两次采样之间的时间间隔(秒)。默认为1秒。
返回
无返回值,但会打印CPU使用率。
"""
print(f"CPU使用率
{psutil.cpu_percent(interval=interval)}%")

示例调用

  • psutil.cpu_percent()函数用于获取CPU使用率。默认情况下,它返回自上次调用以来的CPU使用率(如果这是第一次调用,则可能不准确)。

    3. 获取虚拟内存信息

    ```python
    """
    打印虚拟内存信息。
    参数

    返回

    无返回值,但会打印虚拟内存信息。
    """
    mem = psutil.virtualmemory()
    print(f"总内存
    {mem.total (1024 ** 3).2f} GB")
    print(f"已用内存 {mem.used (1024 3).2f} GB")
    print(f"空闲内存
    {mem.free _ (1024
    3).2f} GB")
    print(f"内存使用率
    {mem.percent}%")

    示例调用

  • psutil.virtual_memory()函数返回一个命名元组,其中包含有关系统虚拟内存的信息。这些信息包括总内存、已用内存、空闲内存、共享内存、缓存内存、可用内存和内存使用率。

    4. 获取磁盘使用情况

    除了CPU和内存信息外,psutil还可以用于获取磁盘使用情况。以下是一个示例:
    ```python
    """
    打印指定路径的磁盘使用情况。
    参数
    path (str)
    要检查磁盘使用情况的路径。默认为根目录。
    返回_
    无返回值,但会打印磁盘使用情况。
    """
    du = psutil.diskusage(path)
    print(f"路径
    {path}")
    print(f"总空间 {du.total (1024 3).2f} GB")
    print(f"已用空间
    {du.used _ (1024
相关文章
|
存储 小程序 物联网
MQTT常见问题之小程序引用 paho-mqtt失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
运维 Linux Shell
|
5月前
|
JSON API 数据格式
干货满满!淘宝商品详情数据,淘宝API(json数据返回)
淘宝商品详情 API 接口(如 taobao.item.get)的 JSON 数据返回示例如下
|
9月前
|
存储 安全 搜索推荐
时统设备:构建精准时间体系的关键力量​
在现代科技中,时间精准同步至关重要。时统设备作为核心装备,广泛应用于国防、通信、电力和金融等领域。文章聚焦同步天下品牌的SYN012型设备及B码时统设备,解析其功能、特点与应用场景。SYN012型设备支持多种信号输入输出,适应复杂环境;B码设备则具备高精度授时和多样化输出能力。两者为各领域提供可靠时间保障,推动科技进步。文章强调原创保护,禁止未经授权转载。
|
3月前
|
JSON 供应链 API
1688商品详情 API 接口系列(JSON 数据返回参考)
提供的核心 B2B 电商数据接口集合,聚焦 1688 平台商品全维度信息的标准化获取,支持 JSON 格式统一返回
|
2月前
|
数据采集 人工智能 监控
2025年数据治理选型指南,值得推荐的数据中台系统
2025年,数据治理成为企业数字化转型核心。本文深度解析瓴羊Dataphin、华为DataArts Studio、字节Dataleap、Informatica与Talend五大主流工具,涵盖其背景、能力、优势及典型应用,助力企业明晰选型路径,实现数据资产化、治理智能化,释放数据要素价值。
|
8月前
|
人工智能 供应链 安全
实现企业级 MCP 服务统一管理和智能检索的实践。
本文将深入剖析 MCP Server 的五种主流架构模式,并结合 Nacos 服务治理框架,为企业级 MCP 部署提供实用指南。
632 130
|
8月前
|
JSON 数据格式
本地部署的qwen3-8b模型和百炼上的qwen3-8b模型效果不一致
我在使用Function Call时发现,百炼平台上的Qwen3-8B模型与本地部署的Qwen3-8B模型效果存在差异,主要体现在函数参数生成上,本地模型常出现漏参或JSON格式错误,而百炼模型表现正常。想确认百炼平台的Qwen3-8B是否为更高版本?
1626 1
|
10月前
|
Ubuntu Linux 编译器
在Ubuntu Linux系统下如何搭建并安装EDK2
以上就是在Ubuntu Linux系统下搭建并安装EDK2的过程。这个过程可能会有些复杂,但只要按照步骤一步步来,应该不会有太大问题。如果在过程中遇到任何问题,都可以在网上找到相应的解决方案。希望这个指南能对你有所帮助!
526 17