新秀Rich库

今天发现了一个新的python库

 今天无意间发现了一个今年2月份才上线的一个github开源项目Rich,可以使得python在命令行输出富文本。

好奇心的趋势下,百度了半天,居然一篇博客教程之类的都没有no????无奈之下,只好跑去看官方文档。

也是看的起我了,可能新项目官方文档写的不是很详细,几乎没有示例代码,捣鼓了老半天才了解个大概,现在就记录下我认为的几个比较实用的功能

  • Panel

这个大概就是画个面板,先上代码:

from rich import print
from rich.panel import Panel


print(Panel("Hello, [red]World!"))

 

  • trace

这个可以根据循环的次数来显示进度,上代码:

from rich.progress import track

for i in track(range(10)):
    time.sleep(0.3)
  • Progress

上面的应用情况比较受限,假设我的处理时间,处理任务数量,处理速度都不确定呢?可以更加自定义地显示吗?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,那么这也就意味着可以输出多个进度条,不过代码里没有应用到。

下面是上面程序整合到一起运行的截图,还可以吧?wink


        留下评论吧,AnonymousUser

              没有登录的话是不能使用评论功能的哈。 去登录 去注册


评论列表
用户wzl, June 2, 2020, 6:59 p.m.
花里胡哨
回复