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连接池实现示例程序
Nov 26 Python
跟老齐学Python之传说中的函数编写条规
Oct 11 Python
python获取mp3文件信息的方法
Jun 15 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
Python 2/3下处理cjk编码的zip文件的方法
Apr 26 Python
python批量下载抖音视频
Jun 17 Python
pandas数据筛选和csv操作的实现方法
Jul 02 Python
在Python中画图(基于Jupyter notebook的魔法函数)
Oct 28 Python
在python中求分布函数相关的包实例
Apr 15 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
Jun 11 Python
详解python tcp编程
Aug 24 Python
python识别验证码的思路及解决方案
Sep 13 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编写的导航条程序
2006/10/09 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
jquery取子节点及当前节点属性值的方法
2014/09/09 Javascript
jquery加载图片时以淡入方式显示的方法
2015/01/14 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
2019/03/07 Javascript
图解javascript作用域链
2019/05/27 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
python从ftp下载数据保存实例
2013/11/20 Python
python函数形参用法实例分析
2015/08/04 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
python中比较两个列表的实例方法
2019/07/04 Python
如何用Python来理一理红楼梦里的那些关系
2019/08/14 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
Ajxa常见问题都有哪些
2014/03/26 面试题
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
专升本自我鉴定
2013/10/10 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
违纪学生保证书
2015/02/27 职场文书
2015年秋季小学开学标语
2015/07/16 职场文书
Python离线安装openpyxl模块的步骤
2021/03/30 Python
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis