万能的Python,还能用来制作高大上的进度条?
对于开发或者运维来说,使用Python去完成一些跑批任务,或者做一些监控事件是非常正常的情况。那么如何有效的监控任务的进度,除了在任务中加上log外,还能不能有另一种方式来了解任务进展到哪一步了呢?
这就是今天我们来了解的内容,进度条
1. 标准输出
首先说一下在操作系统中,都有哪些控制符:
\r: 将光标移动到当前行的首位而不换行;
\n:将光标移动到下一行,并不移动到首位;
\r\n:将光标移动到下一行首位。
那让我们来看下如何通过python来将标准输出中添加进度条吧
import sys
import time
def progress_bar(total):
"""
进度条效果
"""
# 获取标准输出
_output = sys.stdout
# 通过参数决定你的进度条总量是多少
for count in range(0, total + 1):
# 这里的second只是作为工作量的一种代替
# 这里应该是有你的主程序,main()
_second = 0.1
# 模拟业务的消耗时间
time.sleep(_second)
# 输出进度条
_output.write(f'\rcomplete percent:{count:.0f}')
# 将标准输出一次性刷新
_output.flush()
progress_bar(100)
来看下实际效果,这里我录了一段gif
2. tqdm模块
tqdm是一个快速、扩展性强的进度条工具库,它提供了非常多的接口,有兴趣的小伙伴可以了解一下。githup地址是: https://github.com/tqdm/tqdm
我们来看下,如何使用tqdm模块来实现进度条
a. 首先是安装,非常简单
pip install tqdm
b. 接下来就是操作啦
from time import sleep
from tqdm import tqdm
# 这里同样的,tqdm就是这个进度条最常用的一个方法
# 里面存一个可迭代对象
for i in tqdm(range(1, 500)):
# 模拟你的任务
sleep(0.01)
是不是看到这里发现,tqdm非常的简单呢?
这只是一个例子啦,他也可以非常的复杂,同时你也支持多线程、多进程,还有pandas哦~来一个多进程的感受下吧~
关注公众号:「Python专栏」,后台回复:进度条,获取整套源代码!!!
万能的Python,还能用来制作高大上的进度条?的更多相关文章
- 图解CSS3制作圆环形进度条的实例教程
圆环形进度条制作的基本思想还是画出基本的弧线图形,然后CSS3中我们可以控制其旋转来串联基本图形,制造出部分消失的效果,下面就来带大家学习图解CSS3制作圆环形进度条的实例教程 首先,当有人说你能不能 ...
- 详解用CSS3制作圆形滚动进度条动画效果
主 题 今天手把手教大家用CSS3制作圆形滚动进度条动画,想不会都难!那么,到底是什么东东呢?先不急,之前我分享了一个css实现进度条效果的博客<CSS实现进度条和订单进度条>,但是呢, ...
- Unity3D中制作Loading场景进度条
背景 通常游戏的主场景包含的资源较多,这会导致加载场景的时间较长.为了避免这个问题,可以首先加载Loading场景,然后再通过Loading场景来加载主场景.由于Loading场景包含的资源较少,所以 ...
- 使用 new XMLHttpRequest() 制作下载文件进度条
mui 进度控件使用方法: 检查当前容器(container控件)自身是否包含.mui-progressbar类: 当前容器包含.mui-progressbar类,则以当前容器为目标控件,直接显示进度 ...
- 【转】Unity3d中制作Loading场景进度条所遇到的问题 LoadLevelAsync,AsyncOperation
背景 通常游戏的主场景包含的资源较多,这会导致加载场景的时间较长.为了避免这个问题,可以首先加载Loading场景,然后再通过Loading场景来加载主场景.因为Loading场景包含的资源较少,所以 ...
- Unity3d中制作异步Loading进度条所遇到的问题
背景 通常游戏的主场景包括的资源较多,这会导致载入场景的时间较长.为了避免这个问题,能够首先载入Loading场景.然后再通过Loading场景来载入主场景. 由于Loading场景包括的资源较少,所 ...
- css 3 制作水波状进度条
效果图如下 : 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- 一个简单、易用的Python命令行(terminal)进度条库
eprogress 是一个简单.易用的基于Python3的命令行(terminal)进度条库,可以自由选择使用单行显示.多行显示进度条或转圈加载方式,也可以混合使用. 示例 单行进度条 多行进度条 圆 ...
- 2019年的代码都写完了吗?不如做个Python进度条看看还剩多少
我们都知道,进度条是用来直观展示流程所需时间的优秀工具,以免我们担心流程会突然挂掉,而且我们可以用它来预测代码运行是否正常,借助进度条,每个人都能直观地看到脚本最新的进展情况. 如果你之前没用过进度条 ...
随机推荐
- windows 搭建 IBM Hyperledger Fabric(超级账本)开发环境
一.概述 Hyperledge fabric项目是IBM开源的区块链项目.Github地址:https://github.com/hyperledger/fabric 想对fabric有具体的认识,可 ...
- 用Python写WebService接口并且调用
一.用ladon框架封装Python为Webservice接口 另用soaplib实现请看: http://www.jianshu.com/p/ad3c27d2a946 功能实现的同时,希望将接 ...
- pymysql和 SQLAlchemy在python下的使用
#!/usr/bin/env python # -*- coding:utf-8 -*- from sqlalchemy import create_engine, Table, Column, In ...
- C#和C++除了语法上的差别外,还有什么其他的区别
C#与C++的区别: 1.C#有垃圾自动处理机制,所以程序员不用担心对象的内存的释放问题: 2.C#严禁使用指针,但是非要使用的话,只能在unsafe程序块中的使用: 3.C#只有单继承: 4.C#必 ...
- 【BZOJ 3697】采药人的路径
题目链接: TP 题解: 调了好久233. 大概想一想就是树分,然后考虑这样路径(u,v)的特征,以根节点(root)切开,u到root的阴阳差值,和v到root巧合互为相反数,然后考虑要有一个点可作 ...
- 【k短路&A*算法】BZOJ1975: [Sdoi2010]魔法猪学院
Description 找出1~k短路的长度. Solution k短路的求解要用到A*算法 A*算法的启发式函数f(n)=g(n)+h(n) g(n)是状态空间中搜索到n所花的实际代价 h(n) ...
- 给Ubuntu18.04安装mac os主题
安装完的效果: 参考: https://linuxhint.com/gnome-tweak-tool-ubuntu-17-10/ ----------------------------------- ...
- shell的嵌入命令大全
围绕以下几点展开学习: 1.什么是shell的嵌入命令? 2.为什么使用shell? 3.怎样使用shell嵌入命令? 1.什么是shell的嵌入命令: ♦这些命令是在实际的Bourne shell里 ...
- uni-app实现顶部导航栏显示按钮+搜索框
最近公司准备做app,最终决定使用uni-app框架开发,但是当把设计图给我的时候我心里有点没底,因为他的设计图顶部长成这个样子: 因为这个功能在小程序是根本无法实现的,可能受这个影响,我感觉好像实现 ...
- C#-Xamarin的Activity传值与Fragment引用
前言 我们学习任何一个新框架时,肯定都需要学习它的子页面用法,因为子页面是封装公共内容最好的容器. 在Xamarin里子页面为Fragment,翻译过来是片段的意思. Fragment 下面我们来学习 ...