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中关于字符串对象的一些基础知识
Apr 08 Python
详解Python程序与服务器连接的WSGI接口
Apr 29 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
Dec 22 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
Apr 20 Python
Python使用post及get方式提交数据的实例
Jan 24 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 Python
Django中的FBV和CBV用法详解
Sep 15 Python
numpy 声明空数组详解
Dec 05 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
教你怎么用python selenium实现自动化测试
May 27 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
?繁体转换的class
2006/10/09 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
2014/05/23 PHP
Yii Framework框架获取分类下面的所有子类方法
2014/06/20 PHP
从零开始学YII2框架(六)高级应用程序模板
2014/08/20 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
关于vue-router的那些事儿
2018/05/23 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
Python常用随机数与随机字符串方法实例
2015/04/09 Python
对python sklearn one-hot编码详解
2018/07/10 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
Python多线程原理与用法详解
2018/08/20 Python
python的pip有什么用
2020/06/17 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
护士在校生自荐信
2014/02/01 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
环境工程专业自荐信范文
2014/03/18 职场文书
室内设计专业毕业生求职信
2014/05/02 职场文书
勤奋学习演讲稿
2014/05/10 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS