python数据可视化开发(3):使用psutil和socket模块获取电脑系统信息(Mac地址、IP地址、主机名、系统用户、硬盘、CPU、内存、网络)

简介: python数据可视化开发(3):使用psutil和socket模块获取电脑系统信息(Mac地址、IP地址、主机名、系统用户、硬盘、CPU、内存、网络)

系列文章目录

python开发低代码数据可视化大屏:pandas.read_excel读取表格

python实现直接读取excle数据实现的百度地图标注

python数据可视化开发(1):Matplotlib库基础知识

python数据可视化开发(2):pandas读取Excel的数据格式处理


文章目录

系列文章目录

@[TOC](文章目录)

前言

1.psutil模块说明

Memory内存相关

CPU相关

Disk相关

Network相关

进程管理

2.封装函数

数据格式化

调用函数

JSON输出数据

总结


d44aaa0ecd09434ba3c04c53e8b83876.jpg


前言

psutil是一个开源切跨平台的库,其提供了便利的函数用来获取才做系统的信息,比如CPU,内存,磁盘,网络等。此外,psutil还可以用来进行进程管理,包括判断进程是否存在、获取进程列表、获取进程详细信息等。而且psutil还提供了许多命令行工具提供的功能,包括:ps,top,lsof,netstat,ifconfig, who,df,kill,free,nice,ionice,iostat,iotop,uptime,pidof,tty,taskset,pmap。


1.psutil模块说明

psutil包含了异常、类、功能函数和常量,其中功能函数用来获取系统的信息,如CPU、磁盘、内存、网络等。类用来实现进程的管理功能。根据函数的功能,主要分为CPU、磁盘、内存、网络几类,下面将会总几个方面来介绍psutil提供的功能函数。

Memory内存相关


image.png


CPU相关


image.png


Disk相关


image.png


Network相关


image.png


进程管理


image.png


2.封装函数

import json
import psutil
import datetime
import socket
import uuid
# 获取Mac地址
def get_mac_address():
    mac = uuid.UUID(int=uuid.getnode()).hex[-12:]
    return ":".join([mac[e:e + 2] for e in range(0, 11, 2)])
# 磁盘 磁盘的使用量等等
def get_my_computer():
    # 获取主机名
    hostname = socket.gethostname()
    # 获取IP
    ip = socket.gethostbyname(hostname)
    # 系统用户
    users_list = ",".join([u.name for u in psutil.users()])
    # print(u"当前有%s个用户,分别是%s" % (users_count, users_list))
    # 系统启动时间
    start_time = datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
    sys_info = {"hostname": hostname, "ip": ip, "mac": get_mac_address(), "user": users_list, "start_time": start_time}
    # 01.cpu信息
    cpu1 = psutil.cpu_count()
    cpu2 = str(psutil.cpu_percent(interval=1)) + '%'
    # print(u"物理CPU个数 %s" % psutil.cpu_count(logical=False))
    cpu = {"amount": cpu1, "rate": cpu2}
    # 02.内存信息
    mem = psutil.virtual_memory()
    mem_total = round(mem.total / 1024 / 1024 / 1024, 2)
    mem_free = round(mem.free / 1024 / 1024 / 1024, 2)
    mem_percent = str(mem.percent) + '%'
    mem_used = round(mem.used / 1024 / 1024 / 1024, 2)
    ddr = {"total": mem_total, "free": mem_free, "rate": mem_percent, "used": mem_used}
    # 03.磁盘信息(磁盘空间使用占比)
    io = psutil.disk_partitions()
    disk = []
    for i in io:
        # print(i.device)
        o = psutil.disk_usage(i.device)
        disk_data = {"disk_name": i.device,
                     "total": round(o.total / (1024.0 * 1024.0 * 1024.0),1),
                     "used": round(o.used / (1024.0 * 1024.0 * 1024.0),1),
                     "surplus": round(o.free / (1024.0 * 1024.0 * 1024.0),1),
                     "rate": psutil.disk_usage(i.device).percent}
        disk.append(disk_data)
    # 04.网卡,可以得到网卡属性,连接数,当前流量等信息
    net_info = psutil.net_io_counters()
    bytes_sent = '{0:.2f}'.format(net_info.bytes_recv / 1024 / 1024) # mb
    bytes_rcvd = '{0:.2f}'.format(net_info.bytes_sent / 1024 / 1024)
    net = {"bytes_sent": bytes_sent, "bytes_rcvd": bytes_rcvd}
    # 数据字典
    data = {"sys": sys_info, "cpu": cpu, "ddr": ddr, "disk": disk, "net": net}
    return data

数据格式化

调用函数

data = get_my_computer()
re = json.dumps(data)
print(data)

JSON输出数据

{'sys': {'hostname': 'poleung-len', 'ip': '192.168.4.16', 'mac': '4c:79:6e:4f:ff:0f', 'user': 'poleung', 'start_time': '2023-01-24 08:18:44'}, 'cpu': {'amount': 8, 'rate': '32.8%'}, 'ddr': {'total': 15.79, 'free': 4.19, 'rate': '73.5%', 'used': 11.6}, 'disk': [{'disk_name': 'C:\\', 'total': 200.0, 'used': 171.9, 'surplus': 28.1, 'rate': 86.0}, {'disk_name': 'D:\\', 'total': 129.2, 'used': 105.2, 'surplus': 24.0, 'rate': 81.4}, {'disk_name': 'E:\\', 'total': 146.5, 'used': 127.5, 'surplus': 18.9, 'rate': 87.1}], 'net': {'bytes_sent': '927.60', 'bytes_rcvd': '2336.88'}}


总结

对电脑系统信息的读取,涉及到psutil和socket模块。本文是将使用到的信息,封装成单独的函数,然后使用JSON输出,便于后期数据可视化大屏API的对接。后续开发工作的内容包括:


系统数据信息入库(pymysql模块)

数据图表化展示(matplotlib、pyecharts模块)

web端数据可视化(flask模块)

数据导出(pandas模块)

@漏刻有时


相关文章
|
1天前
|
机器学习/深度学习 人工智能 安全
构建未来:AI驱动的自适应网络安全防御系统
【5月更文挑战第29天】 随着网络攻击手段的不断演变和升级,传统的基于特征的安全防御机制已不再能够有效地应对日益复杂的安全威胁。本文探讨了如何通过集成人工智能(AI)技术来构建一个自适应的网络安全防御系统,该系统能够在不断变化的网络环境中学习、预测并主动防御未知威胁。通过深度学习算法、实时数据分析和自动化响应策略,这种新型系统旨在提高企业级网络安全的智能化水平,减少人为干预,同时提升防御效率和准确性。
|
3天前
|
机器学习/深度学习 人工智能 安全
构建未来:AI驱动的自适应网络安全防御系统云端守卫:云计算环境下的网络安全与信息保护策略
【5月更文挑战第27天】 在数字化时代,网络安全威胁持续进化,传统的安全措施逐渐显得力不从心。本文探讨了人工智能(AI)技术如何革新现代网络安全防御系统,提出一个基于AI的自适应网络安全模型。该模型结合实时数据分析、模式识别和自我学习机制,能够动态调整防御策略以应对未知攻击。文章不仅分析了此模型的核心组件,还讨论了实施过程中的挑战与潜在效益。通过引入AI,我们展望一个更加智能且具有弹性的网络安全环境,旨在为未来的网络防护提供一种创新思路。
|
3天前
|
机器学习/深度学习 存储 安全
网络安全与信息安全:防护、检测与教育移动应用开发的未来:跨平台框架与原生系统的融合
【5月更文挑战第27天】在数字化时代,数据成为了新的货币。因此,确保信息的安全性和网络的完整性变得至关重要。本文将探讨网络安全漏洞的概念、加密技术的重要性以及提升安全意识的必要性。通过分析不同类型的安全威胁,我们讨论了如何利用现代加密技术和多层防御策略来保护信息系统。此外,文中还强调了教育和培训在构建坚固的安全防线中的作用。
|
7天前
|
JavaScript 小程序 Java
基于微信小程序的网络安全科普系统的设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的网络安全科普系统的设计与实现(源码+lw+部署文档+讲解等)
|
9天前
|
存储 算法 安全
Python编程实验六:面向对象应用
Python编程实验六:面向对象应用
35 1
|
9天前
|
Python
Python编程作业五:面向对象编程
Python编程作业五:面向对象编程
36 1
|
18小时前
|
Python 容器
Python GUI编程(Tkinter)
Python GUI编程(Tkinter)
|
17小时前
|
移动开发 开发框架 安全
Python CGI编程
Python CGI编程
|
1天前
|
数据采集 运维 API
适合所有编程初学者,豆瓣评分8.6的Python入门手册开放下载!
Python是一种跨平台的计算机程序设计语言,它可以用来完成Web开发、数据科学、网络爬虫、自动化运维、嵌入式应用开发、游戏开发和桌面应用开发。 Python上手很容易,基本有其他语言编程经验的人可以在1周内学会Python最基本的内容(PS:没有基础的人也可以直接学习,速度会慢一点)
|
2天前
|
Python
深度解析Python中的多线程编程
深度解析Python中的多线程编程
23 1
http://www.vxiaotou.com