Python3 requests文件下载 期间显示文件信息和下载进度代码实例


Posted in Python onAugust 16, 2019

这篇文章主要介绍了Python3 requests文件下载 期间显示文件信息和下载进度代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

"""使用模块线程方式实现网络资源的下载
# 实现文件下载, 期间显示文件信息&下载进度
# 控制台运行以显示进度
"""
import requests
import os.path as op
import os
from sys import stdout


def downloadfile(url, filename):
  """下载文件并显示过程
  :param url: 资源地址
  :param filename: 保存的名字, 保存在当前目录
  """
  # print(url)
  filename = filename + '.' + op.splitext(url)[-1]
  file_to_save = op.join(os.getcwd(), filename)
  # print(file_to_save)

  with open(file_to_save, "wb") as fw:
    with requests.get(url, stream=True) as r:
      # 此时只有响应头被下载
      # print(r.headers)
      print("下载文件基本信息:")
      print('-' * 30)
      print("文件名称:", filename)
      print("文件类型:", r.headers["Content-Type"])
      filesize = r.headers["Content-Length"]
      print("文件大小:", filesize, "bytes")
      print("下载地址:", url)
      print("保存路径:", file_to_save)
      print('-' * 30)
      print("开始下载")

      chunk_size = 128
      times = int(filesize) // chunk_size
      show = 1 / times
      show2 = 1 / times
      start = 1
      for chunk in r.iter_content(chunk_size):
        fw.write(chunk)
        if start <= times:
          stdout.write(f"下载进度: {show:.2%}\r")
          start += 1
          show += show2
        else:
          stdout.write("下载进度: 100%")
      print("\n结束下载")


if __name__ == "__main__":
  downloadfile("https://code.jquery.com/jquery-3.4.1.js", "a")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python面向对象编程中关于类和方法的学习笔记
Jun 30 Python
python中json格式数据输出的简单实现方法
Oct 31 Python
详解Python多线程
Nov 14 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
Sep 24 Python
名片管理系统python版
Jan 11 Python
浅谈django三种缓存模式的使用及注意点
Sep 30 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 Python
python获取array中指定元素的示例
Nov 26 Python
Python集合操作方法详解
Feb 09 Python
python绘制玫瑰的实现代码
Mar 02 Python
python实现最速下降法
Mar 24 Python
python tkinter实现定时关机
Apr 21 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 #Python
python函数参数(必须参数、可变参数、关键字参数)
Aug 16 #Python
Python Web框架之Django框架文件上传功能详解
Aug 16 #Python
基于 Django 的手机管理系统实现过程详解
Aug 16 #Python
python创建与遍历List二维列表的方法
Aug 16 #Python
python每天定时运行某程序代码
Aug 16 #Python
pyinstaller打包opencv和numpy程序运行错误解决
Aug 16 #Python
You might like
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
PHP+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
JS中Attr的用法详解
2017/10/09 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
js实现电灯开关效果
2021/01/19 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
python实现归并排序算法
2018/11/22 Python
python使用MQTT给硬件传输图片的实现方法
2019/05/05 Python
Django全局启用登陆验证login_required的方法
2020/06/02 Python
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
德国W家官网,可直邮中国的母婴商城:Windeln.de
2021/03/03 全球购物
市场营销专业毕业生自荐信
2013/11/02 职场文书
公司薪酬管理制度
2014/01/31 职场文书
催款函范本大全
2015/06/24 职场文书
高中团支书竞选稿
2015/11/21 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
python实现过滤敏感词
2021/05/08 Python