python下载文件加上日期_Python实现给下载文件显示进度条和下载时间代码
本篇文章小编给大家分享一下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实现给下载文件显示进度条和下载时间代码相关推荐
- Python 给下载文件显示进度条和下载时间(一看就会!)
其实实现它方法很简单,这里我写了个进度条的模块,其中还附带上了运行时间也就是下载时间了. 该模块调用了三个库: 1.os 2.requests 3.time 话不多说,先上代码!!!. # 进度条模块 ...
- python下载文件加上日期_python拷贝文件夹中特定日期内的文件
需求:遍历一个文件夹,将其中修改日期在2015-02-01--2015-02-20之间的文件拷贝出来,并且拷贝出来的文件要保持原来的目录结构. 实现代码(python3.3): # encoding: ...
- Android 下载文件并显示进度条
2019独角兽企业重金招聘Python工程师标准>>> OK,上一篇文章讲了上传文件到服务端,并显示进度条 那么这边文章主要讲下载文件并显示进度条. 由于简单,所以只上传代码.还是需 ...
- 转:delphi用URLDownloadToFile下载文件,用进度条跟踪下载进度
用URLDownloadToFile下载文件,如何用进度条跟踪下载进度 1:OnDownloadProgress 2:可有否具体的例子. 3:unit Unit1; interface uses ...
- android下载通知栏,Android开发中实现下载文件通知栏显示进度条
android开发中实现下载文件通知栏显示进度条. 1.使用asynctask异步任务实现,调用publishprogress()方法刷新进度来实现(已优化) public class myasync ...
- VC下载文件 + 显示进度条
在codeproject里找了许久,发现这样一个VC下载文件并显示进度条的源码,于是添加了些中文注释: 1.下载线程函数: UINT DownloadFile(LPVOID pParam) { CWn ...
- python progressbar 倒计时_Python使用progressbar模块实现的显示进度条功能
本文实例讲述了Python使用progressbar模块实现的显示进度条功能.分享给大家供大家参考,具体如下: progressbar安装: pip install progressbar 用法一 # ...
- python 酷炫效果_六种酷炫Python运行进度条效果的实现代码
六种酷炫Python运行进度条效果的实现代码,进度条,代码,六种,效果,酷炫 六种酷炫Python运行进度条效果的实现代码 易采站长站,站长之家为您整理了六种酷炫Python运行进度条效果的实现代码的 ...
- 文件上传(显示进度条、上传速度)
XMLHttpRequest对象 使用XMLHttpRequest对象实现数据交互. //创建XMLHttpRequest对象 let xhr = new XMLHttpRequest(); //le ...
最新文章
- 交换机SHOW命令,不知道路由器可以参考不·
- Nature:初步探索限制饮食如何影响肿瘤生长
- php cc攻击代码,php cc攻击代码与防范方法
- WPF Multi-Touch 开发:惯性效果(Inertia)
- MySQL row_format引发的案例一则
- mysql可以靠索引,而我只能靠打工,加油,打工人!
- 通过jS打包下载图片
- c语言数字储存于变量,用C语言写中文数字字符串转数值变量
- 这些让人看瞎了的设计!实力证明,谁才是世界的最终boss!
- MySQL中innodb_page_cleaners详解
- 一ElasticSearch安装启动
- python将图片转换为Framebuffer裸数据格式(终端显示图片)
- 用于PC的骁龙1000近似实锤了,高通员工LinkedIn泄露天机
- listview中有checkbox 滑动后状态改变
- 栈的应用 后缀表达式求值
- 如何实现Miracast多个设备同时连接投屏
- 【向生活低头】联想云教室同步win10_64位电脑导致的电脑卡死在lenovo界面
- Unexpected console statement
- linux运维 对比 网络_网络工程师和Linux运维工程师存在哪些差异
- Day03_【数组、ArrayList】
热门文章
- python idle运行anaconda_在Python IDLE 下调用anaconda中的库教程
- OpenCV学习(二十) :分水岭算法:watershed()
- 这个C怎么了?求大佬指教
- MediaWiki初探:安装及使用入门
- Redis系列四、redis的五种数据结构和相关指令之List
- linux 串口读取陀螺仪,stm32读取陀螺仪MPU6050发送数据到串口
- mysql 64位 8.0.11_mysql8.0.11 在windows64安装 步骤
- 1102 Invert a Binary Tree(甲级)
- java编译命令带参数_java编译命令基础知识点
- oracle 客户端_【数据库 常见术语1】 客户端,服务端