在Python中向多个终端输出文本

5 投票
2 回答
8016 浏览
提问于 2025-04-18 00:55

(我正在使用Python和ArchLinux)

我正在用Python写一个简单的人工智能作为学校项目。因为这是个学校项目,我想让它的运行过程看起来更直观,所以我打算在不同的终端窗口里显示每个子进程的输出——一个终端显示句子是怎么解析的,一个显示pyDatalog在做什么,还有一个用来进行实际的输入输出聊天,可能会用到两个显示器。

根据我所知道的,虽然不多,但有几种可行的方法可以实现这个目标,比如给每个子进程开一个线程,然后从那里处理显示,或者使用一个库来创建和配置我自己的窗口。

我的问题是,这些方法是最好的选择吗?还是说有没有更简单的方法可以同时输出到多个终端?另外,如果创建我自己的窗口(抱歉如果我说的“创建我自己的窗口”用词不当,我是指在Python中建立自己的输出区域)是最好的选择的话,我想知道应该使用哪个库来实现。

2 个回答

4

我喜欢@ebarr的回答,不过有个简单粗暴的方法就是把内容写到几个文件里。然后你可以打开多个终端,实时查看这些文件的变化。

4

你可以有很多种方法来解决这个问题。你可以创建一个Tkinter(或者你喜欢的其他图形界面库)的输出文本框,然后把内容写到这个文本框里。这个方法可以让你对数据的显示方式有更多的控制。

另一种选择是通过命名管道访问多个终端。这意味着你需要启动一个xterm窗口,并通过管道把输出内容发送到这个窗口,让它在屏幕上显示出来。想了解更多,可以看看这个问题的例子:

使用Python的Subprocess在新的xterm窗口中显示输出

撰写回答