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使用open打开文件中文乱码的问题
Dec 29 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
Django获取该数据的上一条和下一条方法
Aug 12 Python
Python使用random模块生成随机数操作实例详解
Sep 17 Python
Python原始套接字编程实例解析
Jan 29 Python
Tensorflow 实现释放内存
Feb 03 Python
解决Python pip 自动更新升级失败的问题
Feb 21 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
Oct 15 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
Jan 29 Python
Python实现曲线拟合的最小二乘法
Feb 19 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
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
php实现读取超大文件的方法
2014/07/28 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
JavaScript File分段上传
2016/03/10 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
vue生命周期和react生命周期对比【推荐】
2018/09/19 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
[36:22]VP vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
在Python中利用Pandas库处理大数据的简单介绍
2015/04/07 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
李宁官方网店:中国运动品牌
2017/11/02 全球购物
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
亚马逊巴西站:Amazon.com.br
2019/09/22 全球购物
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
高二历史教学反思
2014/01/25 职场文书
幼儿园庆六一游园活动方案
2014/01/29 职场文书
党员干部承诺书
2014/03/25 职场文书
表彰会主持词
2014/03/26 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
旷课检讨书500字
2014/10/14 职场文书