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编写提取日志中的中文的脚本的方法
Apr 30 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
Jan 08 Python
python实现数据写入excel表格
Mar 25 Python
DataFrame中去除指定列为空的行方法
Apr 08 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
Mar 18 Python
利用Python查看微信共同好友功能的实现代码
Apr 24 Python
六行python代码的爱心曲线详解
May 17 Python
windows10下安装TensorFlow Object Detection API的步骤
Jun 13 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
python多线程实现代码(模拟银行服务操作流程)
Jan 13 Python
Django中日期时间型字段进行年月日时分秒分组统计
Nov 27 Python
Python的scikit-image模块实例讲解
Dec 30 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根据日期判断星座的函数分享
2014/02/13 PHP
PHP解析RSS的方法
2015/03/05 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
php单链表实现代码分享
2016/07/04 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
javascript闭包的高级使用方法实例
2013/07/04 Javascript
js的.innerHTML = &quot;&quot;IE9下显示有错误的解决方法
2013/09/16 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
理解javascript异步编程
2016/01/27 Javascript
jQuery unbind 删除绑定事件详解
2016/05/24 Javascript
详解vue-cli 构建Vue项目遇到的坑
2017/08/30 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
Python的形参和实参使用方式
2019/12/24 Python
Python celery原理及运行流程解析
2020/06/13 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
数据库面试要点基本概念
2013/10/31 面试题
陈胜吴广起义口号
2014/06/20 职场文书
民族学专业求职信
2014/07/28 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
满月酒邀请函
2015/01/30 职场文书
导游词之贵州百里杜鹃
2019/10/29 职场文书