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中pass语句用法实例分析
Apr 30 Python
Django框架中的对象列表视图使用示例
Jul 21 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
Jul 27 Python
Python爬取三国演义的实现方法
Sep 12 Python
Python中正则表达式的用法总结
Feb 22 Python
Python 自动登录淘宝并保存登录信息的方法
Sep 04 Python
Python hmac模块使用实例解析
Dec 24 Python
pytorch中tensor张量数据类型的转化方式
Dec 31 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
matplotlib更改窗口图标的方法示例
Feb 03 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
中国的第一台收音机
2021/03/01 无线电
PHP时间戳使用实例代码
2008/06/07 PHP
php解析url的三个示例
2014/01/20 PHP
php设计模式之简单工厂模式详解
2014/09/04 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
javascript实现的元素拖动函数宿主为浏览器
2014/07/21 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
2015/09/21 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
Numpy中转置transpose、T和swapaxes的实例讲解
2018/04/17 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
先进个人获奖感言
2014/01/24 职场文书
行政文秘岗位职责范本
2014/02/10 职场文书
冬季安全检查方案
2014/05/23 职场文书
代办委托书怎么写
2014/08/01 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
致我们终将逝去的青春观后感
2015/06/10 职场文书