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网络爬虫采集联想词示例
Feb 11 Python
Python使用PyGreSQL操作PostgreSQL数据库教程
Jul 30 Python
python用来获得图片exif信息的库实例分析
Mar 16 Python
Python聚类算法之基本K均值实例详解
Nov 20 Python
tensorflow输出权重值和偏差的方法
Feb 10 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 Python
Python两台电脑实现TCP通信的方法示例
May 06 Python
Django框架ORM数据库操作实例详解
Nov 07 Python
浅析python内置模块collections
Nov 15 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
Apr 03 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
Jun 02 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
PHP中的正则表达式函数介绍
2012/02/27 PHP
使用PHP实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
2019/08/05 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python 获取当前所在目录的方法详解
2017/08/02 Python
详解python中的 is 操作符
2017/12/26 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
pywinauto自动化操作记事本
2019/08/26 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
中学教师自我鉴定
2014/02/07 职场文书
2015年大学生工作总结
2015/04/21 职场文书
解决python3安装pandas出错的问题
2021/05/20 Python
基于Go语言构建RESTful API服务
2021/07/25 Golang
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers