psutil

giampaoloBSD-3-Clause活跃维护

跨平台 Python 库,用来采集进程和系统运行状态,CPU、内存、磁盘、网络、传感器等指标都能直接读取,省去自己适配不同操作系统。

Cross-platform lib for process and system monitoring in Python

暂无版本11,318star1,537fork同步于 2026-11-10 17:29 UTC

怎么上手

由 README 提炼,执行前请确认
pip install psutil
硬件要求按 README 说明

README 未说明,纯 Python 库,支持 Linux、Windows、macOS、FreeBSD、OpenBSD、NetBSD、Sun Solaris、AIX

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

Python 跨平台库,用来读取进程和系统资源信息,替代 ps、top 等命令

跨平台 Python 库,用来采集进程和系统运行状态,CPU、内存、磁盘、网络、传感器等指标都能直接读取,省去自己适配不同操作系统。

核心能力

  • 获取 CPU 使用率、核心数与频率
  • 读取物理内存和 swap 用量
  • 枚举磁盘分区与磁盘使用率
  • 统计网卡收发字节与 TCP 连接
  • 查询进程信息并迭代遍历所有进程

容易踩的坑

部分平台需按官方 installation 页面处理平台特定安装细节;部分传感器、连接类接口在不同系统上可用性不一致

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    ..

    .. raw:: html

    <div align="center">
        <a href="https://github.com/giampaolo/psutil"><img src="https://github.com/giampaolo/psutil/raw/master/docs/_static/images/logo-psutil-readme.svg" alt="psutil" /></a>
        <p align="center">Process and System Utilities for Python</p>
        <a href="https://psutil.io/"><b>Documentation</b></a>&nbsp;&nbsp;&nbsp;
        <a href="https://psutil.io/blog/"><b>Blog</b></a>&nbsp;&nbsp;&nbsp;
        <a href="https://psutil.io/adoption/"><b>Who uses psutil</b></a>&nbsp;&nbsp;&nbsp;
    </div>
    
    <br/>
    
    <div align="center">
      <a href="https://clickpy.clickhouse.com/dashboard/psutil"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsql-clickhouse.clickhouse.com%2F%3Fuser%3Dplay%26query%3DWITH%2B%2528SELECT%2Bmax%2528date%2529%2BFROM%2Bpypi.pypi_downloads_per_day%2BWHERE%2Bproject%253D%2527psutil%2527%2529%2BAS%2Bm%2BSELECT%2Bconcat%2528toString%2528round%2528sum%2528count%2529%2B%252F%2B1e6%2529%2529%252C%2B%2527M%2527%2529%2BAS%2Bn%2BFROM%2Bpypi.pypi_downloads_per_day%2BWHERE%2Bproject%253D%2527psutil%2527%2BAND%2Bdate%2B%253E%2Bm%2B-%2BtoIntervalMonth%25281%2529%2BAND%2Bdate%2B%253C%253D%2Bm%2BFORMAT%2BJSONEachRow&query=%24.n&label=downloads%2Fmonth&color=blue&cacheSeconds=86400" alt="Downloads"></a>
    
      <a href="https://repology.org/metapackage/python:psutil/versions"><img src="https://repology.org/badge/tiny-repos/python:psutil.svg" alt="Binary packages"></a>
    
      <a href="https://pypi.org/project/psutil"><img src="https://img.shields.io/pypi/v/psutil.svg?label=pypi&color=yellowgreen" alt="Latest version"></a>
    
    </div>
    
    <div align="center">
      <a href="https://github.com/giampaolo/psutil/actions?query=workflow%3Atests"><img src="https://img.shields.io/github/actions/workflow/status/giampaolo/psutil/.github/workflows/tests.yml.svg?label=Linux%2C%20Windows%2C%20macOS" alt="Linux, Windows, macOS"></a>
    
      <a href="https://github.com/giampaolo/psutil/actions?query=workflow%3Absd"><img src="https://img.shields.io/github/actions/workflow/status/giampaolo/psutil/.github/workflows/bsd.yml.svg?label=BSD" alt="FreeBSD, NetBSD, OpenBSD"></a>
    
      <a href="https://github.com/giampaolo/psutil/actions?query=workflow%3Adocs"><img src="https://img.shields.io/github/actions/workflow/status/giampaolo/psutil/.github/workflows/docs.yml.svg?label=docs" alt="Documentation"></a>
    </div>
    

    ..

    About

    psutil is a cross-platform library for retrieving information about running processes and system utilization (CPU, memory, disks, network, sensors) in Python. It is useful mainly for system monitoring, profiling, limiting process resources, and managing running processes. It implements many functionalities offered by UNIX command line tool such as ps, top, free, iotop, netstat, ifconfig, lsof and others (see shell equivalents_). Psutil supports the following platforms:

    • Linux
    • Windows
    • macOS
    • FreeBSD, OpenBSD, NetBSD
    • Sun Solaris
    • AIX

    Adoption

    psutil is among the top 100 <https://clickpy.clickhouse.com/dashboard/psutil>__ most-downloaded packages on PyPI, with 320+ million downloads per month and 790,000+ GitHub repositories <https://github.com/giampaolo/psutil/network/dependents>__ using it. See also adoptions <https://psutil.io/adoption/>__ and alternatives <https://psutil.io/alternatives/>__.

    Install

    .. code-block::

    pip install psutil
    

    For platform-specific details see installation <https://psutil.io/install/>_.

    Documentation

    psutil documentation is available at https://psutil.io.

    ..

    Sponsors

    .. raw:: html

    <table border="0" cellpadding="10" cellspacing="0" class="sponsor-table">
      <tr>
        <td align="center" style="vertical-align: middle;">
          <a href="https://tidelift.com/subscription/pkg/pypi-psutil?utm_source=pypi-psutil&utm_medium=referral&utm_campaign=readme"><img width="160" src="https://raw.githubusercontent.com/giampaolo/psutil/refs/heads/master/docs/_static/images/logo-tidelift.svg" class="sponsor-logo"></a>
        </td>
        <td align="center" style="vertical-align: middle;">
          <a href="https://sansec.io/"><img width="145" src="https://raw.githubusercontent.com/giampaolo/psutil/refs/heads/master/docs/_static/images/logo-sansec.svg" class="sponsor-logo"></a>
        </td>
        <td align="center" style="vertical-align: middle;">
          <a href="https://www.apivoid.com/"><img width="130" src="https://raw.githubusercontent.com/giampaolo/psutil/refs/heads/master/docs/_static/images/logo-apivoid.svg" class="sponsor-logo"></a>
        </td>
      </tr>
    </table>
    
    <div style="text-align: center;"><sup><a href="https://psutil.io/funding/">add your logo</a></sup></div>
    

    ..

    Example usages

    For the full API with more examples, see the API overview <https://psutil.io/api-overview/>_ and API reference <https://psutil.io/api/>_.

    CPU

    .. code-block:: python

    >>> import psutil
    >>> psutil.cpu_percent(interval=1, percpu=True)
    [4.0, 6.9, 3.7, 9.2]
    >>> psutil.cpu_count(logical=False)
    2
    >>> psutil.cpu_freq()
    scpufreq(current=931.42, min=800.0, max=3500.0)
    

    Memory

    .. code-block:: python

    >>> psutil.memory_physical()
    smem(total=10367352832, available=6472179712, percent=37.6, used=8186245120, free=2181107712, ...)
    >>> psutil.memory_swap()
    sswap(total=2097147904, used=296128512, free=1801019392, percent=14.1, sin=304193536, sout=677842944)
    

    Disks

    .. code-block:: python

    >>> psutil.disk_partitions()
    [sdiskpart(device='/dev/sda1', mountpoint='/', fstype='ext4', opts='rw,nosuid'),
     sdiskpart(device='/dev/sda2', mountpoint='/home', fstype='ext', opts='rw')]
    >>> psutil.disk_usage('/')
    sdiskusage(total=21378641920, used=4809781248, free=15482871808, percent=22.5)
    

    Network

    .. code-block:: python

    >>> psutil.net_io_counters(pernic=True)
    {'eth0': snetio(bytes_sent=485291293, bytes_recv=6004858642, ...),
     'lo': snetio(bytes_sent=2838627, bytes_recv=2838627, ...)}
    >>> psutil.net_connections(kind='tcp')
    [sconn(fd=115, family=2, type=1, laddr=addr(ip='10.0.0.1', port=48776), raddr=addr(ip='93.186.135.91', port=80), status='ESTABLISHED', pid=1254),
     ...]
    

    Sensors

    .. code-block:: python

    >>> psutil.sensors_temperatures()
    {'coretemp': [shwtemp(label='Physical id 0', current=52.0, high=100.0, critical=100.0),
                  shwtemp(label='Core 0', current=45.0, high=100.0, critical=100.0)]}
    >>> psutil.sensors_battery()
    sbattery(percent=93, secsleft=16628, power_plugged=False)
    

    Processes

    .. code-block:: python

    >>> p = psutil.Process(7055)
    >>> p.name()
    'python3'
    >>> p.exe()
    '/usr/bin/python3'
    >>> p.cpu_percent(interval=1.0)
    12.1
    >>> p.memory_info()
    pmem(rss=3164160, vms=4410163, shared=897433, text=302694, data=2422374)
    >>> p.net_connections(kind='tcp')
    [pconn(fd=115, family=2, type=1, laddr=addr(ip='10.0.0.1', port=48776), raddr=addr(ip='93.186.135.91', port=80), status='ESTABLISHED')]
    >>> p.open_files()
    [popenfile(path='/home/giampaolo/monit.py', fd=3, position=0, mode='r', flags=32768)]
    >>>
    >>> for p in psutil.process_iter(['pid', 'name']):
    ...     print(p.snapshot.pid, p.snapshot.name)
    ...
    1 systemd
    2 kthreadd
    3 ksoftirqd/0
    ...
    

    .. _shell equivalents: https://psutil.io/shell-equivalents/

    ..

    License

    BSD-3