小编典典

有没有办法对Python curses应用程序进行交互编程?

python

有没有办法创建第二个终端,以便所有对curses函数的调用都在该终端上进行,而不是在现有终端上进行?当我可以交互式地尝试问题时,我的工作速度更快,因此我希望能够在一个终端中运行交互式python解释器,并在另一个终端中查看curses的输出。

就这样,initscr()在交互式窗口中调用要么失败(PyDev),要么从主机中永久删除窗口刷新(Spyder),或者在控制台中引起奇怪的行为(IPython)。

是否可以使用接管另一个终端setupterm()?如果是这样,我在哪里可以得到一个不同的TERM字符串来调用它?


阅读 217

收藏
2021-01-20

共1个答案

小编典典

我不相信,因为curses模块大部分(完全是?)是在C级别实现的。它不太可能提供此类钩子,尽管如果您熟悉该语言,则可能值得从源头上查找。

但是,在阅读您的问题时,我想到了在其他情况下使用的另一种技术。您可以通过另一个终端/编辑器保存脚本,并使用类似于dnotify命令(甚至简单的轮询)的技术将其加载到正在运行的程序中。

另一个想法是使用套接字来发送命令并执行它们。当然,这是危险的安全措施,因此请采取必要的预防措施。

您将必须构建一些基础结构,但是它可能比向curses添加多设备支持要容易得多。

2021-01-20