pythonhttp下载文件并显示下载进度条

author author     2022-11-29     675

关键词:

下面的Python脚本中利用request下载文件并写入到文件系统,利用progressbar模块显示下载进度条。

其中利用request模块下载文件可以直接下载,不需要使用open方法,例如:

import urllib
import requests.packages.urllib3

requests.packages.urllib3.disable_warnings()

url = "https://raw.githubusercontent.com/racaljk/hosts/master/hosts"
urllib.urlretrieve(url, filename="hosts")

下面的例子是题目中完整的例子,其中注释的部分是进度条的另一种写法,显示当前处理过的行数。

#!/usr/bin/python
# encoding: utf-8
# -*- coding: utf8 -*-
"""
Created by PyCharm.
File:               LinuxBashShellScriptForOps:download_file2.py
User:               Guodong
Create Date:        2016/9/14
Create Time:        9:40
 """
import requests
import progressbar
import requests.packages.urllib3

requests.packages.urllib3.disable_warnings()

url = "https://raw.githubusercontent.com/racaljk/hosts/master/hosts"

response = requests.request("GET", url, stream=True, data=None, headers=None)

save_path = "/tmp/hosts"

total_length = int(response.headers.get("Content-Length"))
with open(save_path, ‘wb‘) as f:
    # widgets = [‘Processed: ‘, progressbar.Counter(), ‘ lines (‘, progressbar.Timer(), ‘)‘]
    # pbar = progressbar.ProgressBar(widgets=widgets)
    # for chunk in pbar((i for i in response.iter_content(chunk_size=1))):
    #     if chunk:
    #         f.write(chunk)
    #         f.flush()

    widgets = [‘Progress: ‘, progressbar.Percentage(), ‘ ‘,
               progressbar.Bar(marker=‘#‘, left=‘[‘, right=‘]‘),
               ‘ ‘, progressbar.ETA(), ‘ ‘, progressbar.FileTransferSpeed()]
    pbar = progressbar.ProgressBar(widgets=widgets, maxval=total_length).start()
    for chunk in response.iter_content(chunk_size=1):
        if chunk:
            f.write(chunk)
            f.flush()
        pbar.update(len(chunk) + 1)
    pbar.finish()

运行结果:

技术分享

--end--

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1852709

vc下载文件+显示进度条

在codeproject里找了许久,发现这样一个VC下载文件并显示进度条的源码,于是添加了些中文注释: 1、下载线程函数: [cpp] viewplain copy  print?UINT DownloadFile(LPVOID pParam)  {    & 查看详情

远程下载文件并设置进度显示(代码片段)

 defSchedule(a,b,c):"""进度条显示:parama:已经下载的数据块:paramb:数据块的大小:paramc:远程文件的大小:return:"""per=100.0*a*b/cifper>100:per=100sys.stdout.write(‘\r‘)sys.stdout.write(‘\t\t%.2f%%-已下载的大小:%d-文件大小:%d‘%(per,a 查看详情

vc下载文件显示进度条

VC下载文件显示进度条 逗比汪星人2009-09-18上传 byKomahttp://blog.csd.net/wangningyuhttp://download.csdn.net/detail/wangningyu/1674247 查看详情

下载文件时进度条不显示剩余百分比?

】下载文件时进度条不显示剩余百分比?【英文标题】:progressbarnotshowremainingbypercentwhendownloadfile?【发布时间】:2021-10-2819:28:21【问题描述】:我在Angular8上工作,我遇到问题进度条不显示部分下载假设我下载数据然后20%然后40%... 查看详情

显示下载进度条

】显示下载进度条【英文标题】:showdownloadprogressbar【发布时间】:2021-10-2604:24:50【问题描述】:在我的应用程序中,我使用执行器服务从url下载文件。现在我想添加一个水平进度条来显示下载进度。但我面临错误。如何在不使... 查看详情

将进度条添加到下载文件[重复]

】将进度条添加到下载文件[重复]【英文标题】:Addprogress-bartoDownloadfile[duplicate]【发布时间】:2018-07-2422:06:42【问题描述】:我正在实现一个ViewController来显示以前从我的服务器下载并存储在设备本地的PDF,它可以正常工作,但... 查看详情

python蟒蛇下载大型文件显示进度条(代码片段)

查看详情

iOS,Swift:串行下载多个文件并将所有文件的单个进度条显示为一个进度

】iOS,Swift:串行下载多个文件并将所有文件的单个进度条显示为一个进度【英文标题】:iOS,Swift:Downloadmultiplefileseriallyandshowingsingleprogressbarforallfileasaoneprogress【发布时间】:2020-01-2307:25:12【问题描述】:我正在使用我的ios(swift4)... 查看详情

进度条实时显示request下载文件的解决方案

...起成长进步。  本文主要介绍了进度条实时显示request下载文件的解决方案,希望对新手有所帮助。文章目录1.背景介绍2.解决方案2.1下载文件解决方案2.2直接解析文件2.2.1解析csv文件2.2.2解析压缩包文件1.背景介绍  由于需要... 查看详情

水平进度条不适用于 Asynctask Android 下载文件?

】水平进度条不适用于AsynctaskAndroid下载文件?【英文标题】:HorizontalProgressBarNotWorkinginAsynctaskAndroidForDownloadfile?【发布时间】:2014-07-2417:50:27【问题描述】:我正在尝试使用Asynctask显示水平进度条,但它不适合我。它不是显示百... 查看详情

Android 下载多个文件并在 ListView 中显示进度

】Android下载多个文件并在ListView中显示进度【英文标题】:AndroidDownloadMultipleFilesandshowprogressinListView【发布时间】:2013-09-1818:28:49【问题描述】:我有N个文件要下载。我想在后台连续下载它们-一个接一个。我想在ListView中显示进... 查看详情

NSURLSession 下载任务 - 进度条问题

】NSURLSession下载任务-进度条问题【英文标题】:NSURLSessionDownloadTask-ProgressBarIssue【发布时间】:2016-05-0406:14:40【问题描述】:我正在处理一个非ARC项目,我必须在其中下载视频,下载后我将显示它们。我正在使用NSURLSession下载它... 查看详情

应用程序 QT 崩溃(带进度条的 ftp 下载)

】应用程序QT崩溃(带进度条的ftp下载)【英文标题】:CrashingofapplicationQT(ftpdownloadingwithprogressbar)【发布时间】:2014-05-0721:23:47【问题描述】:我想创建一个应用程序,通过这个我可以从我的ftp服务器下载文件并在进度条中显示... 查看详情

使用newxmlhttprequest()制作下载文件进度条

mui进度控件使用方法:检查当前容器(container控件)自身是否包含.mui-progressbar类:当前容器包含.mui-progressbar类,则以当前容器为目标控件,直接显示进度;否则,检查当前容器的直接孩子节点是否包含.mui-progressbar类,若存在,则... 查看详情

异步下载圆形进度条显示进度

...进度条参考链接即可:使用css3实现圆形进度条需求点击下载后遮罩层显示下载进度:1.圆形进度条参考以上链接,有点小瑕疵,可更改定位距离实现重合。 2.遮罩层:.lbOverlay{ display:none; position:fixed; left:0; top:0;... 查看详情

recyclerview中多任务下载文件进度条更新的问题

在recyclerview或listview中进行下载时,由于条目复用等原因会导致下载的进度条更新错乱。你可能觉得条目复用问题我解决过那么多次,加个tag了啥的就解决了不是。有这个想法说明你没做过下载的处理。因为在下载的过程中,进... 查看详情

ios异步下载下载进度条显示

说到http异步下载,首先要知道其中的关键类。关键类是NSURLConnection  NSURLRequest NSMutableURLRequest 委托是NSURLConnectionDownloadDelegateNSURLConnectionDataDelegateNSURLConnectionDelegate首先,我们要实现最基本的下载功能。LQ 查看详情

关于文件上传下载以及其他进度条的实现

现在我的上传,下载,或者某个批量的进度的进度条实现思路都是这样:  定义一自定义类,列出总数量,完成数(有需求决定可分成功与失败)  然后访问链接的时候进行处理,将session中存入自定义类,自定义类中存入... 查看详情