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实现的登陆Discuz!论坛通用代码分享
Jul 11 Python
浅谈Python peewee 使用经验
Oct 20 Python
Python处理命令行参数模块optpars用法实例分析
May 31 Python
pandas.DataFrame选取/排除特定行的方法
Jul 03 Python
78行Python代码实现现微信撤回消息功能
Jul 26 Python
详解python如何在django中为用户模型添加自定义权限
Oct 15 Python
Django中的forms组件实例详解
Nov 08 Python
基于Python函数和变量名解析
Jul 19 Python
python flask web服务实现更换默认端口和IP的方法
Jul 26 Python
Python3分析处理声音数据的例子
Aug 27 Python
Python os库常用操作代码汇总
Nov 03 Python
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
Jun 08 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
在项目中寻找代码的坏命名
2012/07/14 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
jquery插件制作教程 txtHover
2012/08/17 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
vue proxyTable 接口跨域请求调试的示例
2017/09/12 Javascript
javascript中的隐式调用
2018/02/10 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
Python学习之asyncore模块用法实例教程
2014/09/29 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
python进度条显示之tqmd模块
2020/08/22 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
乔丹诺(Giordano)酒庄德国官网:找到最好的意大利葡萄酒
2017/12/28 全球购物
信息工作经验交流材料
2014/05/28 职场文书
职业规划实施方案
2014/06/10 职场文书
预备党员入党感言
2015/08/01 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
python3读取文件指定行的三种方法
2021/05/24 Python