Python获取下载速度并显示进度条

#!/usr/bin/python3
# -*- coding:utf-8 -*-

import sys
import time
from urllib import request

‘‘‘
 urllib.urlretrieve 的回调函数:
def callbackfunc(blocknum, blocksize, totalsize):
    @blocknum:  已经下载的数据块
    @blocksize: 数据块的大小
    @totalsize: 远程文件的大小
‘‘‘

def Schedule(blocknum, blocksize, totalsize):
    speed = (blocknum * blocksize) / (time.time() - start_time)
    # speed_str = " Speed: %.2f" % speed
    speed_str = " Speed: %s" % format_size(speed)
    recv_size = blocknum * blocksize

    # 设置下载进度条
    f = sys.stdout
    pervent = recv_size / totalsize
    percent_str = "%.2f%%" % (pervent * 100)
    n = round(pervent * 50)
    s = (‘#‘ * n).ljust(50, ‘-‘)
    f.write(percent_str.ljust(8, ‘ ‘) + ‘[‘ + s + ‘]‘ + speed_str)
    f.flush()
    # time.sleep(0.1)
    f.write(‘\r‘)

# 字节bytes转化K\M\G
def format_size(bytes):
    try:
        bytes = float(bytes)
        kb = bytes / 1024
    except:
        print("传入的字节格式不对")
        return "Error"
    if kb >= 1024:
        M = kb / 1024
        if M >= 1024:
            G = M / 1024
            return "%.3fG" % (G)
        else:
            return "%.3fM" % (M)
    else:
        return "%.3fK" % (kb)

if __name__ == ‘__main__‘:
    # print(format_size(1222222222))
    start_time = time.time()
    filename = ‘test.data‘
    url = ‘http://ip:port/path/speed.test‘
    request.urlretrieve(url, filename, Schedule)

  

时间: 2024-12-08 18:16:55

Python获取下载速度并显示进度条的相关文章

Python 给下载文件显示进度条和下载时间

其实实现它方法很简单,这里我写了个进度条的模块,其中还附带上了运行时间也就是下载时间了. 该模块调用了三个库:1.os 2.requests 3.time 话不多说,先上代码!!!. # 进度条模块 def progressbar(url,path): if not os.path.exists(path): # 看是否有该文件夹,没有则创建文件夹 os.mkdir(path) start = time.time() #下载开始时间 response = requests.get(url, st

第四周(1):利用Python计算π的值,并显示进度条

用Python计算圆周率pi并用进度条提示进度 一 计算公式: 二 实现代码 (1) import math from tqdm import tqdm import time total,s,n,t=0.0,1,1.0,1.0 while(math.fabs(t)>=1e-6): total+=t n+=2 s=-s t=s/n k=total*4 print("π值是{:.10f} 运行时间为{:.4f}秒".format(k,time.clock())) for i in

Python实现下载界面(带进度条,断点续传,多线程多任务下载等)

开发环境: Windows 7 64位,Python 3.6.2 实现功能: 进度条,下载速度和下载进度的显示,断点续传(暂停继续下载功能),取消下载等功能下载界面,如图所示点击'新建任务',弹出输入下载链接的窗口,如图所示点击'开始下载',可以自动获取下载文件名和选择存储路径,如图所示: 关键代码: 因为断点续传是在之前的文件继续追加,所以open(filename,'ab')这里打开文件的模式要为ab实现断点续传的代码如下: headers={'Range': 'bytes=%d-' %os

VC下载文件 + 显示进度条

在codeproject里找了许久,发现这样一个VC下载文件并显示进度条的源码,于是添加了些中文注释: 1.下载线程函数: [cpp] view plain copy print? UINT DownloadFile(LPVOID pParam) { CWnd*           pwnd = AfxGetMainWnd(); CProgressCtrl*  m_Prog = (CProgressCtrl*)pwnd->GetDlgItem(IDC_PROGRESS1); CButton*  

【CentOS】cp显示进度条

问题描述: 使用CentOS的cp时,对于大文件的拷贝或者mv,需要等待很长时间,现在需要显示cp或mv的进度 问题解决: Advanced copy 参考官网:http://beatex.org/web/advancedcopy.html 解决方法: 效果预览: [CentOS]cp显示进度条,码迷,mamicode.com

easyui datagrid控制显示进度条

实际项目中当我们在前台分页的时候需要控制datagrid加载数据时显示进度条,而datagrid默认只有在通过url方式加载数据时才显示进度条,以下代码是手动控制: 打开进度条: $('#searchAddrDg').datagrid('loading');//打开等待div 关闭进度条: $('#searchAddrDg').datagrid('loaded');//关闭loding进度条:

ProgressIndicator显示进度条以及一些文字信息

//ProgressIndicator可以显示进度条以及一些文字信息,不过这个属性一般都在cs文件中操作. private void PhoneApplicationPage_Loaded(object sender, System.Windows.RoutedEventArgs e) {     private Microsoft.Phone.Shell.ProgressIndicator _progressIndicator = new Microsoft.Phone.Shell.Progr

显示进度条

static void jindutiao_ZF(Args _args){ RunBaseProgress progress; integer i,j;; i = 10000; progress = new RunBaseProgress(1); progress.setCaption('进度');progress.setTotal(i); progress.updateInterval(1); while(j != i) { j =j+100; progress.setCount(j); pr

基于Jquery插件Uploadify实现实时显示进度条上传图片

网址:http://www.jb51.net/article/83811.htm 这篇文章主要介绍了基于Jquery插件Uploadify实现实时显示进度条上传图片的相关资料,感兴趣的小伙伴们可以参考一下 先了解了解Uploadify,具体内容如下 Uploadify是一个简单易用的多文件上传方案.作为一个Jquery插件,Uploadify使用简单,并具有高度的定制性. Uploadify特性: Uploadify简单说来,是基于Jquery的一款文件上传插件.它的功能特色总结如下: 1).支