reprint 是一个适用于 Python3 的简易变量绑定与多行输出刷新的库
能够以优雅的方式实现多行独立进度条与多线程状态监控
项目地址 https://github.com/Yinzo/reprint
之前用 Docker pull image 的时候看到 Docker 的多行独立刷新,就觉得很酷。结果 Google 了很多也没找到 Python 上实现的方法,都是只能重复刷新同一行而不能刷新多行。于是突发奇想,通过手动填充 padding 来实现『伪多行』,然后封装成一个库,让使用更加优雅,最终成为了 reprint 这个库 :D
1
qweweretrt515 2016-11-06 01:06:43 +08:00
可以参考下 npm
|
2
Yinz OP |
3
qweweretrt515 2016-11-06 09:42:30 +08:00
@Yinz 好像是 cnpm 它的进度条很不错
|
4
imcocc 2016-11-06 12:12:33 +08:00 via iPhone
楼主考虑过兼容 2.7 吗?
|
7
nfroot 2016-11-07 00:17:43 +08:00
"手动填充 padding"是什么意思 难道是其实数据上是一行 但是展示出来因为一行不够所以导致换行变成了多行?
|
8
Yinz OP @nfroot 2333 对,实际上所有输出都在同一行,只是因为填充了 padding 超长而换行显示了而已,你可以改变一下窗口大小就能看出来了;D
|
9
liunx 2017-11-07 15:32:29 +08:00
"都是只能重复刷新同一行而不能刷新多行",博主,我想实现 5 个">"符号在输入屏幕上不断循环,代表程序正在运行状态,现在能有个简单的代码实现了,但当下一次重复是,实际上是使用 os.system('cls')把屏幕全部清空了再在原地方循环,可以有办法只刷新一行吗?因为我还想在屏幕显示另外的信息,不想被这个一并清空。代码如下:
import sys, time, os i = 0 while i < 5: sys.stdout.write('>') sys.stdout.flush() time.sleep(0.3) i += 1 if i >= 5: a = os.system('cls') i = 0 |