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

5

我正在使用Python和ArchLinux。

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

据我所知,有一些可行的方法来处理这个问题,其中之一是针对每个子进程进行线程处理并从那里找出显示方式,或者编写/使用一个库,允许我创建和配置自己的窗口。

我的问题是,那些是否是最好的方法,还是有一种简单的方法可以同时输出到多个终端。此外,如果制作自己的窗口(如果我在说“制作自己的窗口”时使用了错误的术语,请原谅。我指的是在Python中构建自己的输出区域)是最佳选择,我想知道应该使用哪个库。

2个回答

4
所以你可以选择多种方向。你可以创建一个Tkinter(或你选择的GUI库)输出文本框并将其写入其中。这个选项会给你最多的控制权来显示你的数据。
另一个选择是通过命名管道访问多个终端。这涉及到使用管道生成xterm,并将输出泵送到它上面,然后写到屏幕上。参见此问题以获取示例:使用Python的Subprocess在新的Xterm窗口中显示输出

如何在Windows上完成这个任务?(不使用Tkinter) - Sany

4

我喜欢@ebarr的回答,但是一个快速而简单的方法是将内容写入多个文件中。然后您可以打开多个终端并跟踪这些文件。


除此之外,您可以使用 tail -f 来获取流式尾部,但是您必须确保定期刷新 Python 的 stdout 缓冲区。 - ebarr
我认为这个解决方案更好,因为它将为项目创建实时日志,在某些情况下非常有用。 - divykj
这听起来像是一个很好的解决方案,几乎就是我想要做的...但是...你怎么实现这个呢? - Diesel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接