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在非root权限下的安装方法
Jan 23 Python
详解Django rest_framework实现RESTful API
May 24 Python
Python创建一个空的dataframe,并循环赋值的方法
Nov 08 Python
Python3 使用cookiejar管理cookie的方法
Dec 28 Python
python读写csv文件方法详细总结
Jul 05 Python
Python实现简单的列表冒泡排序和反转列表操作示例
Jul 10 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
Python timer定时器两种常用方法解析
Jan 20 Python
python传到前端的数据,双引号被转义的问题
Apr 03 Python
Python datetime模块使用方法小结
Jun 18 Python
python跨文件使用全局变量的实现
Nov 17 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 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
简单采集了yahoo的一些数据
2007/02/14 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
简述vue中的config配置
2018/01/23 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
python安装Scrapy图文教程
2017/08/14 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
深入解析神经网络从原理到实现
2019/07/26 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
python多线程实现TCP服务端
2019/09/03 Python
解决python 找不到module的问题
2020/02/12 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
Python datetime模块的使用示例
2021/02/02 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
strlen的几种不同实现方法
2013/05/31 面试题
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
计算机相关的自我评价
2014/01/15 职场文书
会计专业自我鉴定
2014/02/10 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
幸福家庭标语
2014/06/27 职场文书
电视新闻稿
2015/07/17 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android