Python - 非滚动/多显示 bash



使用 Python,我有 12 个脚本在一次 2 个进程异步运行。当这两个进程运行时,它们会打印有关它们正在执行的每个步骤的持续信息。

我想做的是能够在两个单独的部分中显示我的 bash 窗口。在顶部,我想要一个几乎不移动或更改的任务列表/已完成列表。例如

Async Process 1: Started.
Async Process 2: Started.
Async Process 2: Finished.

然后在 bash 的底部,我想显示这些过程正在打印的内容。我见过一堆在bash窗口中具有这些功能的应用程序,但找不到任何python示例。最好的方法是什么?谢谢!

我推荐诅咒模块。大多数非平凡的终端应用程序使用诅咒或类似诅咒的库来实现其 UI。

Unix环境有许多内置功能,允许这种监视。

这是一个快速而肮脏的解决方案:

从命令行 bash 提示符提交作业,将所有将显示到屏幕的输出重定向到通用文件(在追加模式下)。

bash>  python script.py arg1 arg2 >> temp.out
bash>  python script.py arga argb >> temp.out
bash>  python script.py argx argy >> temp.out
..
bash>  python script.py arg1 arg2 >> temp.out

提交并运行所有作业后,在同一终端中,您可以使用 bash 命令中内置的"作业"监控哪些作业仍在运行/完成

bash>  jobs

然后打开一个新终端,并使用"tail -f"在 temp.out 中查看正在发生的事情(实时)。 所有写入它的进程都会出现输出乱码,但我猜你仍然能够理解它。

bash>  tail -f temp.out

它不像构建自己的进程监视器那样花哨,但整个过程的设置时间不应超过 1 分钟。

最新更新