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实现批量重命名文件的代码
May 25 Python
Python写入数据到MP3文件中的方法
Jul 10 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
May 04 Python
python切片及sys.argv[]用法详解
May 25 Python
python实现感知器算法(批处理)
Jan 18 Python
如何利用Python识别图片中的文字
May 31 Python
Python selenium实现断言3种方法解析
Sep 08 Python
python request 模块详细介绍
Nov 10 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 Python
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
May 31 Python
python实现会员信息管理系统(List)
Mar 18 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
多重?l件?合查?(二)
2006/10/09 PHP
php jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
查找php配置文件php.ini所在路径的二种方法
2014/05/26 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
2017/08/01 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
js获取域名的方法
2015/01/27 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
[02:05]2014DOTA2西雅图邀请赛 专访啸天mik夫妻档
2014/07/08 DOTA
进一步探究Python中的正则表达式
2015/04/28 Python
python 多线程重启方法
2019/02/18 Python
详解Python3中ceil()函数用法
2019/02/19 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
2019/06/19 Python
Django框架models使用group by详解
2020/03/11 Python
美国在线眼镜店:GlassesShop
2018/11/15 全球购物
什么是方法的重载
2013/06/24 面试题
企业门卫岗位职责
2013/12/12 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
绩效工资实施方案
2014/03/15 职场文书
体育运动口号
2014/06/09 职场文书
质量标语大全
2014/06/12 职场文书
债务追讨律师函
2015/06/24 职场文书
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android