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,到最后获取文件的总大小,即可完成。

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

5e859f279be54.jpg

5e859f2040936.jpg

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

实例代码:

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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505984.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c# 计算空格宽度像素_用pythonnet为计算机视觉做图像整理

中国的.NETer是国内技术的另类,当他们强调.NET也可以做啥啥时都会给别的技术藐视,毕竟主流都不用.NET。本人这几年其实花在.NET时间也少,都投入在Python/Go社区。可我还是有点工作外的寄托,就是让.NET也有一个很好的推广&#xff…

C语言笔试不好应该转专业吗,你认为大学里什么学科“难学”?过来人说出几门,考试难补考更难...

原标题:你认为大学里什么学科“难学”?过来人说出几门,考试难补考更难文/晓宁说教育2020届的大一新生们的第一个学期已经结束了,经过了一个学期的学习和生活,相信很多学生都对自己的大学有了一定的规划。尽管进入大学之…

python画饼图存在的问题_Matplotlib 绘制饼图解决文字重叠的方法

在使用Matplotlib 绘制饼图的时候有些时候一些数据的比列太小在饼图呈现的效果不明显 很容易被覆盖,为了解决这个问题以下就是我个人的心得。 【未解决之前呈现的效果】可以看到这个饼状图其他和硕士这2个部分占比很小而且比例相互覆盖,这让人看起来不舒…

python变量类型是动态的_【Python】python动态类型

在python中,省去了变量声明的过程,在引用变量时,往往一个简单的赋值语句就同时完成了,声明变量类型,变量定义和关联的过程,那么python的变量到底是怎样完成定义的呢? 动态类型 python使用动态类…

c语言excel转pdf,基于C语言和Excel软件下光速测量仪测量玻璃折射率.pdf

基于C语言和Excel软件下光速测量仪测量玻璃折射率.pdf基于语言和 软件下光速测量仪测量玻璃折射率 朱承君 王奇峰 芦立娟 张艳春 ( 浙江海洋学院机电学院 浙江 舟山 ) ( 收稿日期 ) 摘要 介绍了用等相位法测玻璃折射率的原理和方法, 并利用了 语言和 在科学计算中的…

python3.7界面_Python3.7+tkinter实现查询界面功能

Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。 这篇文章使用tkinter实现一个简单的查询界面 #!/usr/bin/python # -*- coding: UTF-8 -*- from tkinter import * import sqlite3 # 导入消息对话框子模块 import tkinter.messagebox #im…

python中的元类_Python中的元类(metaclass)

提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解。他知道这肯定和自身有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程。 …

方言大全_长沙人亲戚称呼大全!记得收藏以防失传!

长沙人亲戚称呼大全!记得收藏以防失传!首先,看一下中国亲戚称谓图!▼长沙方言对于亲人的称谓自有一套说法!(如有不同,以你自己的叫法为准哦~)▼长辈篇父亲:ya、“爷(ya)老倌”,“爷(…

adb android源码分析,Android Adb 源码解析(base on Android 9.0)

Adb 框架Adb架构Android Adb 一共分为三个部分:adb、adb server、adbd,源码路径:system⁩/⁨core⁩/⁨adb。adb和adb server 是运行在PC端,adb就是大家所熟悉的控制台命令adb,adb server是由adb fork出的一个常驻后台的…

python生成json_如何将Python数组转为Json格式数据并存储?

在Python中将数组转为Json数据存储时需要用到将json模块中的json.dumps()或者json.dump()方法。 json.dumps()方法用法 使用json.dumps( )方法将Python数组转为json格式数据 # 导入json模块 import json # 定义Python数组 py_list [{JavaEE: "http://java.itheima.com&qu…

vscode angular智能提示_【线下活动】手把手教你玩转 VS Code 插件开发

感谢 Google Developer Group 的邀请,3 月 30 号下午,韩老师将手把手带你玩转 VS Code 插件开发。 Angular 使用了 TypeScript,VS Code 使用了 Chromium。感谢这个开放与包容的时代,技术无界,正是大家对技术有着执着的…

ext js如何动态更改xtype_K8S ConfigMap 用于动态应用程序的实践

编辑:小君君技术校对:星空下的文仔、bot在 Kubernetes 中,ConfigMap 是允许管理员将配置组件与镜像内容解耦,使容器化应用程序产生可移植性的一种资源。ConfigMap 可以与 Kubernetes Pod 一起使用,用于动态添加或更改容…

python教材答案第六章_python第六章{输入和输出}

输出 用print加上字符串,就可以向屏幕上输出指定的文字。比如输出hello, world,用代码实现如下: >>>print hello, world print语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出: >…

字长16位的计算机表示最大整数_废话不多说跪送计算机选择8前十题

1.字长是CPU的主要性能指标之一,它表示(a)a.CPU—一次能处理二进制数据的位数b.最长的十进制整数的位数c.最大的有效数字位数d.计算结果的有效数字长度答案解析【解析】字长是指计算机运算部件一次能同时处理的二进制数据的位数。2.字长为7位的无符号二进制整数能表示的十进制整…

节点name在graph中无法展示_图节点分类与消息传递

Message passing and node classification本文主要解决的问题:给定一个网络, 其中部分节点有label, 如何能将其他的节点分配对应的节点label呢? (在生活中有很多这样的例子, 比如通过交互行为来判断用户是否…

华为荣耀v20是android10,荣耀V20和荣耀V10买哪个好

随着华为NOVA 4的发布,接下来要期待的就是荣耀V20了。从目前曝光的信息来看,这款手机确实憋了不少大招,而且比华为NOVA 4更好的一点是它搭载的是麒麟980处理器,至于它的价格应该会与华为NOVA 4相近。虽然荣耀V20很诱人&#xff0c…

git配置全局用户名和密码_还在手动打包,手动传jar包?那你确实应该学一下jekins配置了...

本文为小编原创文章,首发于Java识堂微信公众号,一个高原创,高收藏的公众号,转载请联系作者先说jekins能干啥,你把代码放到git上,jekins就能帮你编译代码,并且把jar包放到相应的服务器上&#xf…

python图片横向合并_[宜配屋]听图阁

起因: 有一批数据需要每个月进行分析,数据存储在excel中,行标题一致,需要横向合并进行分析。 数据示意:具有多个代码: # -*- coding: utf-8 -*- """ Created on Sun Nov 12 11:19:03 2017 a…

vue项目android,Android与Vue项目交互

1. Android代码class MainActivity : AppCompatActivity() {private lateinit var callJSBtn: Buttonprivate lateinit var webView: WebViewprivate var ajObject: AjObject AjObject()override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceSt…

updatebyprimarykeyselective返回什么是成功_嫦娥五号发射升空成功!!!

嫦娥五号探测器发射成功1聚焦发射当时2020年11月24日4时30分,我国在中国文昌航天发射场,用长征五号遥五运载火箭成功发射探月工程嫦娥五号探测器,火箭飞行约2200秒后,顺利将探测器送入预定轨道,开启我国首次地外天体采…