博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 进度条
阅读量:5056 次
发布时间:2019-06-12

本文共 739 字,大约阅读时间需要 2 分钟。

我这里说明两种方式的进度条

0x00 使用 \r 做输出结尾

先看个例子

import timeimport sysfor s in range(11):    print("[progess][{}{}]|{:.2%}%".format(s*"#", (10-s)*"=", s/10), end="\r")    time.sleep(0.5)

 上面例子关键点是输出字符串的结尾是回车符\r,就因为这个才能在原地更新进度

 知识补充:

     \n是换行,英文是New line

     \r是回车,英文是Carriage return
     机械打字机有回车和换行两个键作用分别是:
     1、换行就是把滚筒卷一格,不改变水平位置。
     2、回车就是把水平位置复位,不卷动滚筒。

因为回车符石复位,所以可以原地更新进度并显示

 

0x01 使用sys.stdout标准输出

直接上示例代码吧

import timeimport sysfor s in range(11):    sys.stdout.write("#")    sys.stdout.flush()    time.sleep(0.5)

 sys.stdout是标准输出,也可以做进度条的

这里需要注意的是:必须要flush,不然只会显示最后的结果,中间的进度更新看不到

为什么呢?

可以想象我们写文件吧,一般是先写到缓存中,缓存写满后再写到硬盘中,

为了安全,一般我们都会执行下flush强制将内容落到硬盘中;

上面进度条就是这样,刷新进度的时候要flush,不然看不到进度更新的。

 

最后进度条的展示设计这个要看个人了,简单也行,复杂也行。

转载于:https://www.cnblogs.com/alummox/p/9648925.html

你可能感兴趣的文章
noSQL数据库相关软件介绍(大数据存储时候,必须使用)
查看>>
iOS开发——缩放图片
查看>>
HTTP之URL的快捷方式
查看>>
满世界都是图论
查看>>
配置链路聚合中极小错误——失之毫厘谬以千里
查看>>
代码整洁
查看>>
蓝桥杯-分小组-java
查看>>
Java基础--面向对象编程1(类与对象)
查看>>
Android Toast
查看>>
iOS开发UI篇—Quartz2D使用(绘制基本图形)
查看>>
docker固定IP地址重启不变
查看>>
桌面图标修复||桌面图标不正常
查看>>
JavaScript基础(四)关于对象及JSON
查看>>
关于js sort排序方法
查看>>
JAVA面试常见问题之Redis篇
查看>>
javascript:二叉搜索树 实现
查看>>
网络爬虫Heritrix源码分析(一) 包介绍
查看>>
__int128的实现
查看>>
Problem - 1118B - Codeforces(Tanya and Candies)
查看>>
jdk1.8 api 下载
查看>>