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 相关文章推荐
python3实现公众号每日定时发送日报和图片
Feb 24 Python
mac 安装python网络请求包requests方法
Jun 13 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
Gauss-Seidel迭代算法的Python实现详解
Jun 29 Python
Django应用程序入口WSGIHandler源码解析
Aug 05 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
python中adb有什么功能
Jun 07 Python
Django serializer优化类视图的实现示例
Jul 16 Python
Python常用类型转换实现代码实例
Jul 28 Python
如何编写python的daemon程序
Jan 07 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
mysql时区问题
2008/03/26 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
2015/12/09 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
python保存log日志,实现用log日志画图
2019/12/24 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
Python 自由定制表格的实现示例
2020/03/20 Python
如何用Django处理gzip数据流
2021/01/29 Python
HTML5通用接口详解
2016/06/12 HTML / CSS
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
财务管理专业应届毕业生求职信
2013/09/22 职场文书
学生党支部先进事迹
2014/02/04 职场文书
中学生自我评价范文
2014/02/08 职场文书
三八妇女节活动总结
2014/05/04 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
MySQL sql模式设置引起的问题
2022/05/15 MySQL