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 相关文章推荐
Python2.5/2.6实用教程 入门基础篇
Nov 29 Python
Python数据操作方法封装类实例
Jun 23 Python
Python with语句上下文管理器两种实现方法分析
Feb 09 Python
Python实现的购物车功能示例
Feb 11 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
通过PYTHON来实现图像分割详解
Jun 26 Python
关于numpy中eye和identity的区别详解
Nov 29 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
Jan 03 Python
Python通过2种方法输出带颜色字体
Mar 02 Python
python zip,lambda,map函数代码实例
Apr 04 Python
属性与 @property 方法让你的python更高效
Sep 21 Python
详解使用python爬取抖音app视频(appium可以操控手机)
Jan 26 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设计模式中的工厂模式
2008/06/12 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
javascript常用功能汇总
2015/07/05 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
js H5 canvas投篮小游戏
2016/08/18 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
[02:10]探秘浦东源深体育馆 DOTA2 Supermajor不见不散
2018/05/17 DOTA
Python 命令行参数sys.argv
2008/09/06 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
解决django FileFIELD的编码问题
2020/03/30 Python
python如何调用java类
2020/07/05 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
初中生自我评价
2014/02/01 职场文书
小学教师听课制度
2014/02/01 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
学子宴致辞大全
2015/07/27 职场文书
病假条格式范文
2015/08/17 职场文书
利用Python+OpenCV三步去除水印
2021/05/28 Python
Python 中 Shutil 模块详情
2021/11/11 Python