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 显示下载进度相关推荐

  1. python实现http下载文件-Python HTTP下载文件并显示下载进度条功能的实现

    下面的Python脚本中利用request下载文件并写入到文件系统,利用progressbar模块显示下载进度条. 其中利用request模块下载文件可以直接下载,不需要使用open方法,例如: im ...

  2. python gui下载进度条_对python GUI实现完美进度条的示例详解

    在用python做一个gui界面时,想搞一个进度条实时显示下载进度,但查阅很多博客,最后的显示效果都类似下面这种: 这种效果在cmd界面看着还可以,但放到图形界面时就有点丑了,所以我用canvas重新 ...

  3. android后台文件下载库,android中如何下载文件并显示下载进度

    最近开发中遇到需要下载文件的问题,对于一般的下载来说不用考虑断点续传,不用考虑多个线程,比如下载一个apk之类的,这篇文章讨论的就是这种情形. 这里主要讨论三种方式:AsyncTask.Service ...

  4. Android中如何下载文件并显示下载进度

    原文地址:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1125/2057.html 这里主要讨论三种方式:AsyncTask.Serv ...

  5. Unity 最新UnityWebRequest下载,同时显示下载进度,和 显示网速,今天贴出来和大家分享

    Unity 最新UnityWebRequest下载网络资源,支持断点续传.多文件同时下载,同时显示下载进度,和 显示网速,今天贴出来和大家分享 显示网速图片 附上案例链接 可下载 https://do ...

  6. vue下载大文件时浏览器不显示下载进度

    vue下载大文件时浏览器不显示下载进度 问题描述 最近开发中遇到个问题,项目需要下载大文件(音视频),由于后端给我的是视频的地址而不是直接返回流,所以前端用了XMLHttpRequest获取视频流并实 ...

  7. AsyncTask下载网络文件,并显示下载进度

    一些说明 ProgressBar.setProgress(): 刷新UI操作必须运行在UI线程中,但是setProgress()方法里面已经做了同步操作,所以可以在非UI线程中调用 webView.l ...

  8. Android——下载apk文件,并在通知栏显示下载进度

    如何下载apk文件?这里介绍两种方式:一通过异步任务读取文件,二利用系统方法DownloadManager进行下载. 通过异步任务下载apk 文件 public String downloadAsAp ...

  9. AsyncTask下载网络图片并显示下载进度

    1.AsyncTask概述 AsyncTask是一个轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新UI,AsyncTask封装了Thread和 ...

最新文章

  1. 20120520 Linux下mysql的自动备份工具
  2. XML,Object,Json分析转换Xstream采用
  3. 浅谈 FTP、FTPS 与 SFTP
  4. discuz问题综合
  5. 亲测可用,超详细RabbitMQ消息队列集群配置
  6. SQL查询多条只取其中最新的一条数据
  7. C++ 日志框架总结
  8. [HNOI2010]PLANAR
  9. 反向传播算法BP公式推导
  10. 遥感原理与应用_遥感原理与应用考试题库及答案
  11. 9个免费可商用的字体推荐
  12. ShineDisk M667固态修复记录 慧荣SM2258XT开卡量产工具
  13. “钓鱼”事件频发,您的企业邮件安全吗?
  14. 流行于大学里的30个脑筋急转弯
  15. 麋鹿分布图制作(二)—— 用Python和R在地图上打点
  16. 区块链是什么通俗解释_区块链技术是什么?区块链的通俗解释原来是这样!
  17. 笔记本 亮度 无法调解
  18. 计算机网络实验3.1.3·CHAP 鉴别配置
  19. 免费的java外文文献,JAVA外文文献翻译[共18页].doc
  20. adb 截屏和录屏命令,经典好文

热门文章

  1. FreeImage的图像处理软件
  2. 【JavaScript】JavaScript Date 对象常用方法大全,例如:getDate、getDay、getFullYear、getHours等(包括作用、语法、参数解析、详细用例)
  3. 修改git远程仓库地址
  4. matlab判断double_matlab中double语句.doc
  5. 覆盖vue3.0的最全Vue知识点
  6. MySQL 5.7.31安装Can‘t change dir to ‘……‘问题解决
  7. 不知道密码,怎么打开PPT文件
  8. 「谷歌插件」这是一款我认为最好的标签页扩展插件
  9. tomcat增大缓存的最大空间
  10. 腾讯云 COS对象存储+视频处理总结