猫史档案馆


【Python作品分享】网速监控【作品秀】

用户:代码荣耀者代码荣耀者查看:10 回复:7 评论:10 创建时间:2021-02-19T18:09:15


【作品展示】

center_image

 

【作品介绍】

全方位进行网速监控!

 

【作品源代码】

from psutil import *
from time import *
from matplotlib.pyplot import *
from matplotlib import rcParams
from random import *
from easygui import *

def exit_use():
    msgbox("想退出,请点我!","系统退出按钮","结束监控")
    exit()

def plot_speed_kb(t = 0.001):
    # exit_use()#暂未开发
    rcParams["font.sans-serif"] = "SimHei"
    fig = figure()
    ion()
    
    xar = list(range(60))
    yar_recv = []
    for i in range(60):
        yar_recv.append(0)
    yar_sent = []
    for i in range(60):
        yar_sent.append(0)
    arvg_speed_recv = []
    arvg_speed_sent = []
    s1 = net_io_counters().bytes_recv
    s3 = net_io_counters().bytes_sent
    sleep(t)
    while "正在监控中":
        fig.clear()
        s2 = net_io_counters().bytes_recv
        s4 = net_io_counters().bytes_sent
        recv_speed_kb = (s2 - s1) / t / 1024
        sent_speed_kb = (s4 - s3) / t / 1024
        yar_recv.pop(0)
        yar_sent.pop(0)
        yar_recv.append(recv_speed_kb)
        yar_sent.append(sent_speed_kb)

        recv = 0                    
        arvg_speed_recv.append(recv_speed_kb)    
        if len(arvg_speed_recv)>60:      
            arvg_speed_recv.pop(0)       
        for i in arvg_speed_recv:        
            recv+=i
        arvg_recv = recv/len(arvg_speed_recv)
        arvg_line_recv = []              
        for i in range(60):         
            arvg_line_recv.append(arvg_recv)

        sent = 0                    
        arvg_speed_sent.append(sent_speed_kb)    
        if len(arvg_speed_sent)>60:      
            arvg_speed_sent.pop(0)       
        for i in arvg_speed_sent:        
            sent+=i
        arvg_sent = sent/len(arvg_speed_sent)
        arvg_line_sent = []              
        for i in range(60):         
            arvg_line_sent.append(arvg_sent)

        plot(xar,yar_recv,label = "当前下载网速:%f kb/s"%recv_speed_kb)
        plot(xar,yar_sent,label = "当前上传网速:%f kb/s"%sent_speed_kb)
        plot(xar,arvg_line_recv,label = "当前下载平均网速:%f kb/s"%arvg_recv)
        plot(xar,arvg_line_sent,label = "当前上传平均网速:%f kb/s"%arvg_sent)
        legend(loc = "upper left")
        s1 = s2
        s3 = s4
        pause(t)

def use():
    if ynbox('是否开始监控?', '网速监控操作系统5.0', ("开始!!!对电脑网速进行严格监控","取消,再次检查系统,确保万无一失!")):
        msgbox("开始了,请就位!!!",'紧急通知','已就位!')
    else:
        msgbox("监控取消,等待下次使用!",'通知','退出监控')
        exit()

    t = enterbox(msg="监控单位时间(秒)(请输入非0实数,不输入请取消。为确保程序流畅,推荐输入范围在0.1到0.0001之间,取消或输入0都将按默认值0.001处理):", title="网速监控操作系统5.0", strip=True, image=None, root=None)


    if t == None or t == "0":
        plot_speed_kb()
    else:
        t = float(t)
        plot_speed_kb(t)

msgbox("欢迎使用网速监控操作系统5.0!",'网速监控操作系统5.0欢迎您','开始使用')
use()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
麦芒Wheat麦芒Wheat

OHHHHHNB

点赞1


评论


哎呀果仁君哎呀果仁君

好家伙,我看都不看就复制

点赞2


评论


英俊小子英俊小子

没有这个库emotion_编程猫_翻白眼

psutil

点赞0


评论


BZIClawLYNEYBZIClawLYNEY

你这是专门让我强制退出的吗~~

点赞0


评论


代码荣耀者代码荣耀者

欢迎大家,这不是上课的原代码,而是我结合自己的想法在原作的基础上添加了许多新功能改进的!欢迎大家学习,有谬误之处还请指正!!!谢谢大家啦!

点赞1


评论


lsk666666lsk666666

imgsrc="https://static.cod喵/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E7%82%B9%E8%B5%9E.gif"alt="emotion_编程猫_点赞" 我更需要能测ping值的算法

点赞0


评论


Python-happyyyyPython-happyyyy

imgsrc="https://static.cod喵/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E6%90%93%E5%A4%B4.gif"alt="emotion_编程猫_搓头"

点赞0


评论