本篇文章小编给大家分享一下Python实现给下载文件显示进度条和下载时间代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

该模块调用了三个库:

1.os

2.requests

3.time

代码如下:

# 进度条模块

def progressbar(url,path):

if not os.path.exists(path): # 看是否有该文件夹,没有则创建文件夹

os.mkdir(path)

start = time.time() #下载开始时间

response = requests.get(url, stream=True) #stream=True必须写上

size = 0 #初始化已下载大小

chunk_size = 1024 # 每次下载的数据大小

content_size = int(response.headers['content-length']) # 下载文件总大小

try:

if response.status_code == 200: #判断是否响应成功

print('Start download,[File size]:{size:.2f} MB'.format(size = content_size / chunk_size /1024)) #开始下载,显示下载文件大小

filepath = path+'\name.extension name' #设置图片name,注:必须加上扩展名

with open(filepath,'wb') as file: #显示进度条

for data in response.iter_content(chunk_size = chunk_size):

file.write(data)

size +=len(data)

print('\r'+'[下载进度]:%s%.2f%%' % ('>'*int(size*50/ content_size), float(size / content_size * 100)) ,end=' ')

end = time.time() #下载结束时间

print('Download completed!,times: %.2f秒' % (end - start)) #输出下载用时时间

except:

实现原理其实很简单,我们一般下载东西使用的requests.get(url).content的方法下载来的文件是二进制文件,我们只要通过for循环每次下载1024kb,到最后获取文件的总大小,即可完成。

通过上面这个函数我们就实现了简单的进度条以及所需时间的功能,我们用了两个参数,我们下载个皮卡丘图片来试试效果:

效果还不错~~注:[下载进度]后面的‘>'是有动态显示的,这里可能看不到,可以在自己的环境下测试看看!!

实例代码:

import os

import requests

import time

# 进度条模块

def progressbar(url,path):

if not os.path.exists(path): # 看是否有该文件夹,没有则创建文件夹

os.mkdir(path)

start = time.time() #下载开始时间

response = requests.get(url, stream=True)

size = 0 #初始化已下载大小

chunk_size = 1024 # 每次下载的数据大小

content_size = int(response.headers['content-length']) # 下载文件总大小

try:

if response.status_code == 200: #判断是否响应成功

print('Start download,[File size]:{size:.2f} MB'.format(size = content_size / chunk_size /1024)) #开始下载,显示下载文件大小

filepath = path+'\Pikachu.jpg' #设置图片name,注:必须加上扩展名

with open(filepath,'wb') as file: #显示进度条

for data in response.iter_content(chunk_size = chunk_size):

file.write(data)

size +=len(data)

print('\r'+'[下载进度]:%s%.2f%%' % ('>'*int(size*50/ content_size), float(size / content_size * 100)) ,end=' ')

end = time.time() #下载结束时间

print('Download completed!,times: %.2f秒' % (end - start)) #输出下载用时时间

except:

print('Error!')

def main():

#下载皮卡丘图片

url = 'https://img.moegirl.org/common/thumb/e/ed/%E7%9A%AE%E5%8D%A1%E4%B8%98%E4%B9%8B%E6%AD%8C.jpg/1200px-%E7%9A%AE%E5%8D%A1%E4%B8%98%E4%B9%8B%E6%AD%8C.jpg'

path = r'E:\123' # 设置下载到本地的地址

progressbar(url,path)

if __name__ == '__main__':

main()

python下载文件加上日期_Python实现给下载文件显示进度条和下载时间代码相关推荐

  1. Python 给下载文件显示进度条和下载时间(一看就会!)

    其实实现它方法很简单,这里我写了个进度条的模块,其中还附带上了运行时间也就是下载时间了. 该模块调用了三个库: 1.os 2.requests 3.time 话不多说,先上代码!!!. # 进度条模块 ...

  2. python下载文件加上日期_python拷贝文件夹中特定日期内的文件

    需求:遍历一个文件夹,将其中修改日期在2015-02-01--2015-02-20之间的文件拷贝出来,并且拷贝出来的文件要保持原来的目录结构. 实现代码(python3.3): # encoding: ...

  3. Android 下载文件并显示进度条

    2019独角兽企业重金招聘Python工程师标准>>> OK,上一篇文章讲了上传文件到服务端,并显示进度条 那么这边文章主要讲下载文件并显示进度条. 由于简单,所以只上传代码.还是需 ...

  4. 转:delphi用URLDownloadToFile下载文件,用进度条跟踪下载进度

    用URLDownloadToFile下载文件,如何用进度条跟踪下载进度 1:OnDownloadProgress  2:可有否具体的例子.  3:unit Unit1; interface uses ...

  5. android下载通知栏,Android开发中实现下载文件通知栏显示进度条

    android开发中实现下载文件通知栏显示进度条. 1.使用asynctask异步任务实现,调用publishprogress()方法刷新进度来实现(已优化) public class myasync ...

  6. VC下载文件 + 显示进度条

    在codeproject里找了许久,发现这样一个VC下载文件并显示进度条的源码,于是添加了些中文注释: 1.下载线程函数: UINT DownloadFile(LPVOID pParam) { CWn ...

  7. python progressbar 倒计时_Python使用progressbar模块实现的显示进度条功能

    本文实例讲述了Python使用progressbar模块实现的显示进度条功能.分享给大家供大家参考,具体如下: progressbar安装: pip install progressbar 用法一 # ...

  8. python 酷炫效果_六种酷炫Python运行进度条效果的实现代码

    六种酷炫Python运行进度条效果的实现代码,进度条,代码,六种,效果,酷炫 六种酷炫Python运行进度条效果的实现代码 易采站长站,站长之家为您整理了六种酷炫Python运行进度条效果的实现代码的 ...

  9. 文件上传(显示进度条、上传速度)

    XMLHttpRequest对象 使用XMLHttpRequest对象实现数据交互. //创建XMLHttpRequest对象 let xhr = new XMLHttpRequest(); //le ...

最新文章

  1. 交换机SHOW命令,不知道路由器可以参考不·
  2. Nature:初步探索限制饮食如何影响肿瘤生长
  3. php cc攻击代码,php cc攻击代码与防范方法
  4. WPF Multi-Touch 开发:惯性效果(Inertia)
  5. MySQL row_format引发的案例一则
  6. mysql可以靠索引,而我只能靠打工,加油,打工人!
  7. 通过jS打包下载图片
  8. c语言数字储存于变量,用C语言写中文数字字符串转数值变量
  9. 这些让人看瞎了的设计!实力证明,谁才是世界的最终boss!
  10. MySQL中innodb_page_cleaners详解
  11. 一ElasticSearch安装启动
  12. python将图片转换为Framebuffer裸数据格式(终端显示图片)
  13. 用于PC的骁龙1000近似实锤了,高通员工LinkedIn泄露天机
  14. listview中有checkbox 滑动后状态改变
  15. 栈的应用 后缀表达式求值
  16. 如何实现Miracast多个设备同时连接投屏
  17. 【向生活低头】联想云教室同步win10_64位电脑导致的电脑卡死在lenovo界面
  18. Unexpected console statement
  19. linux运维 对比 网络_网络工程师和Linux运维工程师存在哪些差异
  20. Day03_【数组、ArrayList】

热门文章

  1. python idle运行anaconda_在Python IDLE 下调用anaconda中的库教程
  2. OpenCV学习(二十) :分水岭算法:watershed()
  3. 这个C怎么了?求大佬指教
  4. MediaWiki初探:安装及使用入门
  5. Redis系列四、redis的五种数据结构和相关指令之List
  6. linux 串口读取陀螺仪,stm32读取陀螺仪MPU6050发送数据到串口
  7. mysql 64位 8.0.11_mysql8.0.11 在windows64安装 步骤
  8. 1102 Invert a Binary Tree(甲级)
  9. java编译命令带参数_java编译命令基础知识点
  10. oracle 客户端_【数据库 常见术语1】 客户端,服务端