python 显示下载进度
python 实现命令行下载文件,或上传文件时,需要展示进度。可以参考下面的demo,进度条样式可以根据要求更改。
import timetasks = range(100) # 上传或下载的总数
def demo():for i in tasks:i += 1length = '>>' * int(i / len(tasks) * 20)bar = '\r' + length.ljust(41) + '| {:0>0.1f}%'.format(i / len(tasks) * 100)print(bar, flush=True, end='')time.sleep(0.1)demo()
下面是我工作中真实的开发场景:
使用CDN的客户遇到一个问题,作为电商客户,网站搞活动,经常会新上很多图片。那么第一次请求的用户一定经历了很长时间的等待。因为CDN还没有缓存过新的图片。
解决方案:使用程序向各个CDN站点发起请求,这样一来,就可以在用户访问之前把图片缓存到各个CDN站点了。
下面是部分代码,使用多线程发起请求。
import requests
from concurrent.futures import ThreadPoolExecutor,as_completeddef sendRequest(url):domain_id = url.split('.')[0][7:]headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36','Host': '{}.cloudfront.net'.format(domain_id)}try:statusCode = requests.get(url=url, headers=headers, timeout=3).status_codeexcept:statusCode = 500return statusCode, urlif __name__ == '__main__':urlList = []with ThreadPoolExecutor() as pool:futures = [pool.submit(sendRequest,url) for url in urlList]i = 0for future in as_completed(futures):i += 1length = '>>'* int(i/len(futures) * 20)bar = '\r' + length.ljust(41) + '| {:0>4.1f}%'.format(i/len(futures) * 100)print(bar, end='', flush=True)
python 显示下载进度相关推荐
- python实现http下载文件-Python HTTP下载文件并显示下载进度条功能的实现
下面的Python脚本中利用request下载文件并写入到文件系统,利用progressbar模块显示下载进度条. 其中利用request模块下载文件可以直接下载,不需要使用open方法,例如: im ...
- python gui下载进度条_对python GUI实现完美进度条的示例详解
在用python做一个gui界面时,想搞一个进度条实时显示下载进度,但查阅很多博客,最后的显示效果都类似下面这种: 这种效果在cmd界面看着还可以,但放到图形界面时就有点丑了,所以我用canvas重新 ...
- android后台文件下载库,android中如何下载文件并显示下载进度
最近开发中遇到需要下载文件的问题,对于一般的下载来说不用考虑断点续传,不用考虑多个线程,比如下载一个apk之类的,这篇文章讨论的就是这种情形. 这里主要讨论三种方式:AsyncTask.Service ...
- Android中如何下载文件并显示下载进度
原文地址:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1125/2057.html 这里主要讨论三种方式:AsyncTask.Serv ...
- Unity 最新UnityWebRequest下载,同时显示下载进度,和 显示网速,今天贴出来和大家分享
Unity 最新UnityWebRequest下载网络资源,支持断点续传.多文件同时下载,同时显示下载进度,和 显示网速,今天贴出来和大家分享 显示网速图片 附上案例链接 可下载 https://do ...
- vue下载大文件时浏览器不显示下载进度
vue下载大文件时浏览器不显示下载进度 问题描述 最近开发中遇到个问题,项目需要下载大文件(音视频),由于后端给我的是视频的地址而不是直接返回流,所以前端用了XMLHttpRequest获取视频流并实 ...
- AsyncTask下载网络文件,并显示下载进度
一些说明 ProgressBar.setProgress(): 刷新UI操作必须运行在UI线程中,但是setProgress()方法里面已经做了同步操作,所以可以在非UI线程中调用 webView.l ...
- Android——下载apk文件,并在通知栏显示下载进度
如何下载apk文件?这里介绍两种方式:一通过异步任务读取文件,二利用系统方法DownloadManager进行下载. 通过异步任务下载apk 文件 public String downloadAsAp ...
- AsyncTask下载网络图片并显示下载进度
1.AsyncTask概述 AsyncTask是一个轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新UI,AsyncTask封装了Thread和 ...
最新文章
- 20120520 Linux下mysql的自动备份工具
- XML,Object,Json分析转换Xstream采用
- 浅谈 FTP、FTPS 与 SFTP
- discuz问题综合
- 亲测可用,超详细RabbitMQ消息队列集群配置
- SQL查询多条只取其中最新的一条数据
- C++ 日志框架总结
- [HNOI2010]PLANAR
- 反向传播算法BP公式推导
- 遥感原理与应用_遥感原理与应用考试题库及答案
- 9个免费可商用的字体推荐
- ShineDisk M667固态修复记录 慧荣SM2258XT开卡量产工具
- “钓鱼”事件频发,您的企业邮件安全吗?
- 流行于大学里的30个脑筋急转弯
- 麋鹿分布图制作(二)—— 用Python和R在地图上打点
- 区块链是什么通俗解释_区块链技术是什么?区块链的通俗解释原来是这样!
- 笔记本 亮度 无法调解
- 计算机网络实验3.1.3·CHAP 鉴别配置
- 免费的java外文文献,JAVA外文文献翻译[共18页].doc
- adb 截屏和录屏命令,经典好文
热门文章
- FreeImage的图像处理软件
- 【JavaScript】JavaScript Date 对象常用方法大全,例如:getDate、getDay、getFullYear、getHours等(包括作用、语法、参数解析、详细用例)
- 修改git远程仓库地址
- matlab判断double_matlab中double语句.doc
- 覆盖vue3.0的最全Vue知识点
- MySQL 5.7.31安装Can‘t change dir to ‘……‘问题解决
- 不知道密码,怎么打开PPT文件
- 「谷歌插件」这是一款我认为最好的标签页扩展插件
- tomcat增大缓存的最大空间
- 腾讯云 COS对象存储+视频处理总结