• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python使用psutil库对系统数据进行采集监控的方法

    大家好,我是辰哥~

    今天给大家介绍一个可以获取当前系统信息的库——psutil

    利用psutil库可以获取系统的一些信息,如cpu,内存等使用率,从而可以查看当前系统的使用情况,实时采集这些信息可以达到实时监控系统的目的。

    psutil库

    psutil的安装很简单

    pip install psutil

    psutil库可以获取哪些系统信息?

    psutil有哪些作用
    1.内存使用情况
    2.磁盘使用情况
    3.cpu使用率
    4.网络接口发送接收流量
    5.获取当前网速
    6.系统当前进程
    ...

    下面通过具体代码案例进行演示

    内存使用情况

    import psutil
    #内存
    mem = psutil.virtual_memory()
    # 系统总计内存
    zj = float(mem.total) / 1024 / 1024 / 1024
    # 系统已经使用内存
    ysy = float(mem.used) / 1024 / 1024 / 1024
    # 系统空闲内存
    kx = float(mem.free) / 1024 / 1024 / 1024
    print('系统总计内存:%d.4GB' % zj)
    print('系统已经使用内存:%d.4GB' % ysy)
    print('系统空闲内存:%d.4GB' % kx)

    获取当前系统总内存,已使用内存,以及空闲内存

    这里获取的内存是的单位是字节,所以需要通过除以1024转为G,下面同样如此就不再重复解释。

    获取系统cpu信息

    #显示cpu所有逻辑信息
    print(psutil.cpu_times(percpu=True))
    # 查看cpu逻辑个数的信息
    print(u"逻辑CPU个数: %s" % psutil.cpu_count())
    # 查看cpu物理个数的信息
    print(u"物理CPU个数: %s" % psutil.cpu_count(logical=False))
    #CPU的使用率
    cpu = (str(psutil.cpu_percent(1))) + '%'
    print(u"cup使用率: %s" % cpu)

    获取cpu信息,以及本机cpu个数(包括逻辑cpu数和物理cpu数),当前的cpu使用率(每隔1秒获取一次,获取查看实时cpu使用率情况)

    系统磁盘使用情况

    part = psutil.disk_partitions()
    for i in part:
        print(i)
    dk = psutil.disk_usage('/')
    print(dk)
    #总磁盘
    total = dk.total / 1024 / 1024 / 1024
    used = dk.used / 1024 / 1024 / 1024
    free = dk.free / 1024 / 1024 / 1024
    print('系统总计磁盘:%d.3GB' % total)
    print('系统已经使用磁盘:%d.3GB' % used)
    print('系统空闲磁盘:%d.3GB' % free)
    print(u"磁盘使用率: %s%%" % dk.percent)
    # 获取磁盘总的io个数,读写信息
    print(psutil.disk_io_counters())

    前面几行是当前系统可以访问的磁盘信息

    其中第1行mountpoint='/',表示当前本机默认磁盘

    其中第6行mountpoint='/Volumes/Extreme SSD',表示外接固态移动硬盘

    这里以本机磁盘mountpoint='/'为例,查看磁盘的使用情况(总容量,已使用,空闲容量,使用率)

    最后一行的每一个字段的含义如下:

    """
        read_count 读IO数
        write_count 写IO数
        read_bytes 读IO字节数
        write_bytes 写IO字节数
        read_time 磁盘读时间
        write_time 磁盘写时间
    """

    获取系统网卡信息

    # 获取网络总IO信息
    print(psutil.net_io_counters())
    # 发送数据包
    print("发送数据字节:", psutil.net_io_counters().bytes_sent,"bytes")
    #接收数据包
    print("接收数据字节:",psutil.net_io_counters().bytes_recv,"bytes")
    # 输出网络每个接口信息
    net_counter = psutil.net_io_counters(pernic=True)
    for i in net_counter:
        print("网卡:"+i+" ,网卡信息:",net_counter[i])

    可以获取到当前本机中存在哪些网卡,以及发送和接收的流量是多少

    通过在终端中查看本机的网卡是否一致

    mac和linux系统命令:ifconfig

    window系统命令:ipconfig

    部分截图如下:

    可以看到程序获取的网卡数据和本机终端获取是一致的

    获取当前网速

    通过上面的程序获取网卡发送和接收的流量来获取当前网速

    s1 = psutil.net_io_counters(pernic=True)['en0']
    time.sleep(1)
    s2 = psutil.net_io_counters(pernic=True)['en0']
    result = s2.bytes_recv - s1.bytes_recv
    print(str('%d' % (result / 1024)) + 'kb/s')

    代码中的['en0']表示获取en0网卡的数据,因为辰哥本机的网卡是en0

    最后可以看到获取当前网速情况

    每个1秒执行该代码可以实现实时获取网速

    其他功能

    # 系统开机时间
    # 转换成自然时间格式
    print(datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S"))
    #获取当前系统用户登录信息
    users = psutil.users()
    for i in users:
        print(i)

    可以获取到本机开机时间,以及当前使用的用户

    今天的文章就到这里了

    有任何疑问小伙伴们欢迎下方留言讨论哈~

    最后

    1. 本文详细介绍了python通过psutil获取系统信息(内存,磁盘,cpu等)

    2. 本文仅供读者学习使用,不做其他用途!

    耐得住寂寞,才能登得顶
    Gitee码云:https://gitee.com/lyc96/projects

    到此这篇关于Python使用psutil库对系统数据进行采集监控的方法的文章就介绍到这了,更多相关Python psutil系统监控内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python中的异常类型及处理方式示例详解
    • python实现邮箱发送信息
    • Python Pytest装饰器@pytest.mark.parametrize详解
    • python3 使用OpenCV计算滑块拼图验证码缺口位置(场景示例)
    • 详解python关于多级包之间的引用问题
    • 一些让Python代码简洁的实用技巧总结
    • 利用Python读取微信朋友圈的多种方法总结
    • python库sklearn常用操作
    • python编写adb截图工具的实现源码
    • Python爬虫技术
    上一篇:使用Atom支持基于Jupyter的Python开教程详解
    下一篇:python库sklearn常用操作
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python使用psutil库对系统数据进行采集监控的方法 Python,使用,psutil,库,对,系统,