玩转 Python 之 psutil 模块

前言

来啦老铁!

许久不见,最近没有比较大的东西要记录,今天就简单学个 Python 的模块吧,他就是:

  • psutil

本文主要来源网络文章:https://zhuanlan.zhihu.com/p/380842937

学习路径

  1. psutil 模块简介;
  2. psutil 模块安装;
  3. 使用 psutil 模块;

1. psutil 模块简介;

psutil 是 python 上专门用来获取操作系统以及硬件相关的信息,比如:CPU、磁盘、网络、内存等。
psutil 可以获取很多底层的信息,在处理系统监控、资源管理等任务时是非常有用的工具。

2. psutil 模块安装;

  • 使用以下命令安装 psutil:
pip3 install psutil

3. 使用 psutil 模块;

  • 使用demo:
import psutil
import datetime


def test():
    # 获取 CPU 的逻辑数量
    print(psutil.cpu_count())
    # 获取 CPU 的物理核心数量
    print(psutil.cpu_count(logical=False))
    print(psutil.cpu_times())

    # 查看 CPU 的使用率
    for x in range(3):
        # interval:表示每隔0.5s刷新一次
        # percpu:表示查看所有的cpu使用率
        print(psutil.cpu_percent(interval=0.5, percpu=True))
    # 查看 CPU 的统计信息,包括上下文切换、中断、软中断,以及系统调用次数等等
    print(psutil.cpu_stats())
    # 查看 CPU 的频率
    print(psutil.cpu_freq())
    # 查看内存使用情况
    print(psutil.virtual_memory())
    # 查看交换内存信息
    print(psutil.swap_memory())
    # 查看磁盘分区、磁盘使用率和磁盘 IO 信息
    print(psutil.disk_partitions())
    # 查看某个磁盘使用情况
    print(psutil.disk_usage("/dev/disk1s5s1"))
    # 查看磁盘 IO 统计信息
    print(psutil.disk_io_counters())
    # 默认返回的是所有磁盘加起来的统计信息,我们可以指定 perdisk=True,则分别列出每一个磁盘的统计信息
    print(psutil.disk_io_counters(perdisk=True))
    # 查看网卡的网络 IO 统计信息
    print(psutil.net_io_counters())
    # 里面还有一个 pernic 参数, 如果为 True, 则列出所有网卡的信息
    print(psutil.net_io_counters(pernic=True))
    # 以字典的形式返回网卡的配置信息, 包括 IP 地址、Mac地址、子网掩码、广播地址等等
    print(psutil.net_if_addrs())
    # 返回网卡的详细信息, 包括是否启动、通信类型、传输速度、mtu
    print(psutil.net_if_stats())
    # 查看当前机器的网络连接
    # print(psutil.net_connections())
    # 查看当前登录的用户信息
    print(psutil.users())
    # 查看系统的启动时间
    print(psutil.boot_time())
    print(datetime.datetime.fromtimestamp(psutil.boot_time()))
    # 查看当前存在的所有进程的 pid
    print(psutil.pids())
    # 查看某个进程是否存在
    print(psutil.pid_exists(22333))
    print(psutil.pid_exists(0))
    # 返回所有进程(Process)对象组成的迭代器
    print(psutil.process_iter())
    # 根据 pid 获取一个进程对应的 Process 对象
    print(psutil.Process(pid=0))


if __name__ == '__main__':
    test()

未来有这方面的应用场景,我们再来一起复习、扩展,好了,今天就简单到这吧~
同时也祝大家:

  • 六一儿童节快乐!

(谁还不是个宝宝~)

能力有限,欢迎指正、互相交流,感谢~

如果本文对您有帮助,麻烦点赞、关注!

感谢~

你可能感兴趣的:(玩转 Python 之 psutil 模块)