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

发布于 2021-01-29 15:22:38

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

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

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

关注者
0
被浏览
40
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看