在Python中将文本输出到多个终端

在Python中将文本输出到多个终端,python,shell,terminal,Python,Shell,Terminal,(我正在使用Python和ArchLinux) 作为一个学校项目,我正在用Python编写一个简单的AI。因为这是一个学校项目,我想直观地演示它在做什么,我的目的是让一个不同的终端窗口显示每个子流程的打印输出-一个终端显示句子是如何被解析的,一个显示pyDatalog正在做什么,一个用于实际的输入输出聊天,等等,可能在两个监视器上 据我所知,这并不多,有两种可行的方法可以实现这一点:对每个子进程进行线程化,并从中找出显示,或者编写/使用一个库,使我能够创建和配置自己的窗口 那么,我的问题是,这些

(我正在使用Python和ArchLinux)

作为一个学校项目,我正在用Python编写一个简单的AI。因为这是一个学校项目,我想直观地演示它在做什么,我的目的是让一个不同的终端窗口显示每个子流程的打印输出-一个终端显示句子是如何被解析的,一个显示pyDatalog正在做什么,一个用于实际的输入输出聊天,等等,可能在两个监视器上

据我所知,这并不多,有两种可行的方法可以实现这一点:对每个子进程进行线程化,并从中找出显示,或者编写/使用一个库,使我能够创建和配置自己的窗口


那么,我的问题是,这些是最好的方法,还是有一种简单的方法可以同时输出到多个终端。另外,如果制作我自己的窗口(如果我说“制作我自己的窗口”时我的术语是错误的,我很抱歉。我的意思是用Python构建我自己的输出区域)是最好的选择,我正在寻找我应该使用哪一个库来实现这一点。

因此,您可以从多个方向使用它。您可以创建一个Tkinter(或您选择的GUI库)输出文本框并写入该文本框。此选项将使您能够最大程度地控制如何显示数据

另一个选项是通过命名管道访问多个终端。这涉及到生成一个带有管道的xterm,并将输出输出到它以写入屏幕。请参见此问题以了解更多信息和示例:


我喜欢@ebarr的答案,但一种快速而肮脏的方法是写入多个文件。然后,您可以打开多个终端并跟踪文件。

要添加到这一点,您可以使用
tail-f
获得流式跟踪,但您必须确保定期刷新pythons stdout缓冲区。我认为此解决方案更好,因为它将为项目创建实时日志,这在某些情况下非常有用。