psutil(process and system utilities)是一个跨平台的库,用于访问系统运行中进程以及系统利用率(如CPU、内存、磁盘、网络等)的信息。它主要用来做系统监控,性能分析,进程管理。psutil支持多个平台,包括Linux、Windows、MacOS、FreeBSD等
import psutil
print(psutil.disk_io_counters())
print(psutil.disk_partitions())
print(psutil.disk_usage('/'))
for proc in psutil.process_iter(['pid', 'name']):
print(proc.info)
pid = 492
p = psutil.Process(pid)
print(p.cpu_times())
print(p.memory_info())
print(p.open_files())
p.terminate()
print(psutil.cpu_count())
print(psutil.cpu_count(logical=False))
print(psutil.cpu_percent(interval=1, percpu=True))
print(psutil.virtual_memory())
print(psutil.swap_memory())
print(psutil.net_io_counters())
print(psutil.net_connections())
2 psutil应用场景
系统监控:编写脚本或者应用来定期检查系统资源的使用情况,例如检测CPU、内存的用量是否超过阈值,以决定是否需要调整系统负载或者发出警报。
性能分析:用于分析程序运行时占用的系统资源,以优化程序性能。
服务器管理:可以用于远程监测服务器状态,实现自动化资源管理,例如定期检查服务器的健康状况,包括CPU温度、风扇速度等。
进程管理:监控特定进程的行为,包括进程的启动、运行状态、资源使用情况等,也可以用来开发一些任务管理器类的应用。
网络监测:分析网络的使用状况,监控网络连接和带宽使用。
介绍完了,下面给个函数 mac,获取设备第一个网卡的mac地址,一般设备有好多网卡,比如:本地连接1,本地连接2,蓝牙网卡,等
import psutil
def wangka_mac_0():
netinfo = psutil.net_if_addrs()
wangka_mac_0=''
for NetName,Info in netinfo.items():
if len(Info) < 3:
pass
elif NetName == "lo":
pass
else:
Netname = NetName
ipaddr = Info[0].address
if not wangka_mac_0:
wangka_mac_0=ipaddr
else:
break
return wangka_mac_0
wangka_mac_0=wangka_mac_0()
print(wangka_mac_0)