可以工作的代码
import time
import wmi
import platform
def interface_rate( intf_list ) :
return [[item.Name, int(item.BytesReceivedPersec), int(item.BytesSentPersec), int(item.CurrentBandwidth)/8] for item in intf_list]
def show_interface_rate( intf_rate_list ) :
'''format output information'''
for rate in intf_rate_list :
print(rate[0] + "===>in:{0},ot:{1},bw:{2}".format(rate[1], rate[2], rate[3]), end=" \r")
def main():
os = platform.system()
if os.lower() == "windows" :
pre_rate = []
cur_rate = []
wmi_object = wmi.WMI()
while True :
net_interface_list = []
for net_interface in wmi_object.Win32_PerfRawData_Tcpip_NetworkInterface() :
net_interface_list.append(net_interface)
cur_rate = interface_rate( net_interface_list )
if len(pre_rate) > 0 :
show_interface_rate( [[cur[0], cur[1]-pre[1], cur[2]-pre[2], cur[3]] for cur, pre in zip(cur_rate, pre_rate)] )
pre_rate = cur_rate
time.sleep(1)
if __name__ == "__main__" :
main()
探讨改进
新手代码,有想法的同行,一起探讨。
续集:关注psutil的实现方式。===>官方网站
没有更多
不识武林豪杰墓,
无花无酒锄作田。唐寅-明