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实现Linux下守护进程的编写方法
Aug 22 Python
Python的组合模式与责任链模式编程示例
Feb 02 Python
常见python正则用法的简单实例
Jun 21 Python
python编写分类决策树的代码
Dec 21 Python
django js实现部分页面刷新的示例代码
May 28 Python
Python数据持久化shelve模块用法分析
Jun 29 Python
在Python中实现替换字符串中的子串的示例
Oct 31 Python
python利用插值法对折线进行平滑曲线处理
Dec 25 Python
对python中类的继承与方法重写介绍
Jan 20 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
Apr 12 Python
Python中使用gflags实例及原理解析
Dec 13 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
Nov 24 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删除数组中特定元素的两种方法
2013/07/02 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
JavaScript入门基础
2015/08/12 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
javascript验证form表单数据的案例详解
2019/03/25 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
深入理解Python中的元类(metaclass)
2015/02/14 Python
python实现爬虫下载美女图片
2015/07/14 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
Python可以实现栈的结构吗
2020/05/27 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
劳动模范事迹材料
2014/01/19 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
大学生应聘求职信
2014/05/26 职场文书
法院干警四风问题个人对照检查材料思想汇报
2014/10/07 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
高中团支书竞选稿
2015/11/21 职场文书
Vue Element plus使用方法梳理
2022/12/24 Vue.js