天下程序员首页cx06.com
管理 |  登录 |  注册
袁鹏飞的小屋
笔记(共39个) > python

python库psutil获取设备mac内存,cpu信息

阅读 0赞 0回复 2024-08-16 16:00:26

psutil(process and system utilities)是一个跨平台的库,用于访问系统运行中进程以及系统利用率(如CPU、内存、磁盘、网络等)的信息。它主要用来做系统监控,性能分析,进程管理。psutil支持多个平台,包括Linux、Windows、MacOS、FreeBSD等


import psutil
# 获取磁盘总的IO统计信息
print(psutil.disk_io_counters())
# sdiskio(read_count=7619232, write_count=13326738, read_bytes=274449818624, write_bytes=273096798720, 
# read_time=6312, write_time=4962)
# 获取磁盘分区信息
print(psutil.disk_partitions())
# 获取磁盘使用情况
print(psutil.disk_usage('/')) 
# 获取当前系统所有进程ID
for proc in psutil.process_iter(['pid', 'name']):
    print(proc.info)

# 获取特定进程
pid = 492  # 假设进程ID为492
p = psutil.Process(pid)

# 获取进程的CPU时间、内存、打开的文件、网络连接等信息
print(p.cpu_times())
print(p.memory_info())
print(p.open_files())

# 终止进程
p.terminate()

# 获取CPU逻辑核心数
print(psutil.cpu_count())

# 获取CPU物理核心数
print(psutil.cpu_count(logical=False))

# 获取CPU使用率(每个核心或者平均)
print(psutil.cpu_percent(interval=1, percpu=True))

# 获取物理内存
print(psutil.virtual_memory())

# 获取交换内存
print(psutil.swap_memory())

# 获取网络总的IO统计信息
print(psutil.net_io_counters())

# 获取当前网络连接信息
print(psutil.net_connections())

2 psutil应用场景
系统监控:编写脚本或者应用来定期检查系统资源的使用情况,例如检测CPU、内存的用量是否超过阈值,以决定是否需要调整系统负载或者发出警报。

性能分析:用于分析程序运行时占用的系统资源,以优化程序性能。

服务器管理:可以用于远程监测服务器状态,实现自动化资源管理,例如定期检查服务器的健康状况,包括CPU温度、风扇速度等。

进程管理:监控特定进程的行为,包括进程的启动、运行状态、资源使用情况等,也可以用来开发一些任务管理器类的应用。

网络监测:分析网络的使用状况,监控网络连接和带宽使用。

介绍完了,下面给个函数 mac,获取设备第一个网卡的mac地址,一般设备有好多网卡,比如:本地连接1,本地连接2,蓝牙网卡,等

import psutil
def wangka_mac_0():
    # 获取首个网卡mac
    netinfo = psutil.net_if_addrs()
    wangka_mac_0=''
    for NetName,Info in netinfo.items():
        if len(Info) < 3:
            pass
        elif NetName == "lo":
            pass
        else:
            # print(Info[0],type(Info[0]),'\n')
            Netname = NetName
            ipaddr = Info[0].address
            # ipMAC  = Info[2].address
            if not wangka_mac_0:
                wangka_mac_0=ipaddr
            else:
                break
    return wangka_mac_0
            # print(NetName,ipaddr,ipMAC)
            # print("--------------------------")
wangka_mac_0=wangka_mac_0()
print(wangka_mac_0)

赞(0)

文章作者置顶的回复

全部回复列表 当前第(1)页

添加回复,文明发言,会审核.(服务区回复可以发广告)

作者最新笔记
天下程序员 www.cx06.com 程序员的网上家园!
作者微信:13126507001