【问题标题】:Outputting text to multiple terminals in Python在 Python 中将文本输出到多个终端
【发布时间】:2014-04-01 20:43:27
【问题描述】:

(我正在使用 Python 和 ArchLinux)

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

据我所知,这并不多,一些可行的方法是处理每个子进程并从那里找出显示,或者编写/使用允许我制作和配置自己的窗口的库。

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

【问题讨论】:

    标签: python shell terminal


    【解决方案1】:

    所以你可以用这个去多个方向。您可以创建一个 Tkinter(或您选择的 GUI 库)输出文本框并写入该文本框。此选项可让您最大程度地控制数据的显示方式。

    另一种选择是通过命名管道访问多个终端。这涉及使用管道生成 xterm 并将输出泵送到它以在屏幕上写入。请参阅此问题的示例:

    Using Python's Subprocess to Display Output in New Xterm Window

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 要添加到这个你可以使用tail -f 来获得一个流尾,但你必须确保定期刷新pythons stdout 缓冲区。
      • 我认为这个解决方案更好,因为它会为项目创建实时日志,这在某些场景中会很有用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-06
      • 1970-01-01
      • 2017-12-01
      相关资源
      最近更新 更多