我尝试使用psutil
,但我不确定如何才能获得网络利用率百分比。
答案 0 :(得分:0)
import psutil
import time
def __check_speeds():
rs = {}
for net_name,stats in psutil.net_if_stats().items():
if type(stats) is tuple or not stats.isup:
continue
rs[net_name] = stats.speed
return rs
def __snapshoot():
rs = {}
for net_name,stats in psutil.net_io_counters(pernic=True).items():
rs[net_name] = stats.bytes_recv
return rs
if __name__=='__main__':
nets = __check_speeds()
while True:
print '###########################'
snap_prev = __snapshoot()
time.sleep(1)
snap_now = __snapshoot()
for net_name,speed in nets.items():
recv_prev = snap_prev[net_name]
recv_now = snap_now[net_name]
rate = (recv_now-recv_prev)/(speed*1024*1024/8.)
print 'name:%s,rate:%.2f%%' % (net_name,rate*100)