使用Python编写半幻想输出

问题描述

我想编写一个事件侦听器,该事件侦听器会将中间输出写入终端,并且在完成子任务后,它将继续向终端写入永久输出。 它将以相同的逻辑继续进行,直到完成所有子任务,然后“正常退出”。

功能上讲,我希望它看起来像docker pull调用:进度条列表,在相同的X行数上异步更新;完成后,程序将打印“完成”(或类似内容),并且进度条也已完成。

我看过诅咒,乌鸦图书馆;但是,它们的局限性在于“它们切换到辅助缓冲区(我想我希望/必须保留在主缓冲区中。)tqdm似乎与我想要的东西有关(例如,https://github.com/kolayne/tqdm/tree/bars_position_fix#nested-progress-bars ,或者在https://github.com/tqdm/tqdm/pull/1054合并之后更正确),但是tdqm是关于进度条;我只想编排stdout。

我要启动/交付的PoC如下所示:

/proc/self/
|-- attr
|-- cwd -> /proc
|-- fd
|   `-- 3 -> /proc/15589/fd
/proc/self/
|-- attr
|-- cwd -> /proc
|-- fd
|   `-- 3 -> /proc/15589/fd <--- I would prefer if this disappeared,but I am fine with it if "it has to stay"
|-- fdinfo
|-- net
|   |-- dev_snmp6
|   |-- netfilter
|   |-- rpc
|   |   |-- auth.rpcsec.context
....

(用有意义的任务/子任务名称代替任何)。

然后,一切都变了:微调器,颜色是否通过,中间任务输出tail,...等等等等

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)