Python 在控制台中指定丝网印刷位置?

Python 在控制台中指定丝网印刷位置?,python,printing,stdout,Python,Printing,Stdout,我有一个生成其他线程的主线程。主线程定期检查打印/刷新/更新的状态: status = "Queued: {} | Workers: {}".format(queued_status, worker_status) sys.stdout.flush() sys.stdout.write("\r{}".format(status)) 这非常有效,但最终会与工作线程的print语句混在一起 那么,我如何将状态指定为打印到顶部(它只是在适当的位置更新),并将线程打印到下面呢?大概是这样的: 排队:无

我有一个生成其他线程的主线程。主线程定期检查打印/刷新/更新的状态:

status = "Queued: {} | Workers: {}".format(queued_status, worker_status)
sys.stdout.flush()
sys.stdout.write("\r{}".format(status))
这非常有效,但最终会与工作线程的print语句混在一起

那么,我如何将状态指定为打印到顶部(它只是在适当的位置更新),并将线程打印到下面呢?大概是这样的:

排队:无|工人:4
........................
丝印
丝印
丝印

线程打印将保持滚动(就像普通的终端窗口),但状态锁定在顶部。

诅咒模块是用于打印到屏幕上特定位置的常用解决方案。您仍然需要安排从一个线程打印所有文本,以避免几乎同时打印的文本混杂在一起;这通常是通过
队列来完成的。队列
(工作人员添加到队列中,而不是直接打印;如果队列不为空,则从队列中弹出主线程并打印)。

诅咒模块是用于打印到屏幕上特定位置的常用解决方案。您仍然需要安排从一个线程打印所有文本,以避免几乎同时打印的文本混杂在一起;这通常是通过
队列来完成的。队列
(工作人员添加到队列中,而不是直接打印;如果不为空,则从队列中弹出主线程并打印)。

如果您使用的是Linux(或者使用与VT100兼容的终端,或者至少使用一个支持ANSI控制序列的终端),这非常容易。如果您使用的是Linux(或者使用与VT100兼容的终端,或者至少使用一个支持ANSI控制序列的终端),那么这非常简单。看看