Python HTTP下载文件并显示下载进度条功能的实现


Posted in Python onApril 02, 2020

下面的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()

运行结果:

Python HTTP下载文件并显示下载进度条功能的实现

到此这篇关于Python HTTP下载文件并显示下载进度条功能的实现的文章就介绍到这了,更多相关python下载文件显示进度条内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
跟老齐学Python之坑爹的字符编码
Sep 28 Python
python获取当前时间对应unix时间戳的方法
May 15 Python
深入理解python多进程编程
Jun 12 Python
pandas数值计算与排序方法
Apr 12 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
Python3中详解fabfile的编写
Jun 24 Python
Python实现对文件进行单词划分并去重排序操作示例
Jul 10 Python
pandas的相关系数与协方差实例
Dec 27 Python
python实现将range()函数生成的数字存储在一个列表中
Apr 02 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
Python Excel vlookup函数实现过程解析
Jun 22 Python
python调用摄像头的示例代码
Sep 28 Python
python实现将range()函数生成的数字存储在一个列表中
Apr 02 #Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 #Python
python求前n个阶乘的和实例
Apr 02 #Python
python实现将字符串中的数字提取出来然后求和
Apr 02 #Python
python对指定字符串逆序的6种方法(小结)
Apr 02 #Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 #Python
django中url映射规则和服务端响应顺序的实现
Apr 02 #Python
You might like
Protoss魔法科技
2020/03/14 星际争霸
php中计算时间差的几种方法
2009/12/31 PHP
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
PHP多维数组排序array详解
2017/11/21 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
纯js实现重发验证码按钮倒数功能
2015/04/21 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
layui表格checkbox选择全选样式及功能的实例
2018/03/07 Javascript
JS实现图片转换成base64的各种应用场景实例分析
2018/06/22 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
小程序实现抽奖动画
2020/04/16 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
Django接受前端数据的几种方法总结
2016/11/04 Python
numpy返回array中元素的index方法
2018/06/27 Python
python基于property()函数定义属性
2020/01/22 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
十佳大学生事迹材料
2014/01/29 职场文书
幼儿园母亲节活动方案
2014/03/10 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
法人代表证明书格式
2014/10/01 职场文书