使用Psutil获取网卡实时状态:speed、mtu、isup无法自动更新
问题解决:网络接口状态无法实时更新
问题原因
你当前的代码中,stats = psutil.net_if_stats()语句是在while循环外部执行的,只会在脚本启动时获取一次网络接口的状态数据。后续循环里一直复用这组初始数据,自然不会反映接口状态的实时变化。
修正后的代码
import psutil import time import os while True: time.sleep(1) os.system("clear") # 每次循环都重新获取最新的网络接口统计数据 stats = psutil.net_if_stats() for nic, addrs in psutil.net_if_addrs().items(): print("%s:" % (nic)) if nic in stats: st = stats[nic] print(" stats : ", end='') print("speed=%sMB, mtu=%s, up=%s" % ( st.speed, st.mtu, "yes" if st.isup else "no"))
关键改动说明
- 将
stats = psutil.net_if_stats()移动到while True循环内部,确保每次循环都从系统读取最新的接口状态(speed、mtu、isup)。 - 保留原有的清除屏幕和每秒刷新逻辑,保证实时显示效果。
内容的提问来源于stack exchange,提问作者Gabriel Bifon
相关产品推荐
相关产品推荐

