今天发现了一个新的python库
今天无意间发现了一个今年2月份才上线的一个github开源项目Rich,可以使得python在命令行输出富文本。
好奇心的趋势下,百度了半天,居然一篇博客教程之类的都没有????无奈之下,只好跑去看官方文档。
也是看的起我了,可能新项目官方文档写的不是很详细,几乎没有示例代码,捣鼓了老半天才了解个大概,现在就记录下我认为的几个比较实用的功能
这个大概就是画个面板,先上代码:
from rich import print
from rich.panel import Panel
print(Panel("Hello, [red]World!"))
这个可以根据循环的次数来显示进度,上代码:
from rich.progress import track
for i in track(range(10)):
time.sleep(0.3)
上面的应用情况比较受限,假设我的处理时间,处理任务数量,处理速度都不确定呢?可以更加自定义地显示吗?OK!没问题,上代码:
import random,time
from rich.progress import BarColumn,TimeRemainingColumn,Progress
progress= Progress("[progress.description]{task.description}",
BarColumn(),
"[progress.percentage]{task.percentage:>3.0f}%",
TimeRemainingColumn(),
"{task.completed}/{task.total}")
with progress:
task_id = progress.add_task("[green]Processing...",total=54514)
while(True):
dealing_part=random.randint(0,5000)
dealed_part=progress.tasks[task_id].completed
if dealed_part+dealing_part>=54514:
progress.update(task_id, advance=54514-dealed_part)
break
progress.update(task_id, advance=dealing_part)
time.sleep(0.8)
上面这段代码,我们利用random函数来产生随机数,模拟随机的处理速度,注意使用if控制了不能超过总任务数。
实例化Progress类的时候,参数就规定了显示内容。task_id就是任务队列里这个任务的索引值,由此可见,一个progress中可以有多个task,那么这也就意味着可以输出多个进度条,不过代码里没有应用到。
下面是上面程序整合到一起运行的截图,还可以吧?
              没有登录的话是不能使用评论功能的哈。 去登录 去注册
回复