Python控制台应用程序设计状态和交互式

时间:2015-05-09 07:15:50

标签: python raspberry-pi

我有一个固定的2小时工作(四个30分钟部分),我想从Python控制台应用程序的菜单选项开始,我正在寻找设计帮助。

当用户单击菜单选项以启动作业时,我想在作业运行时提供某种状态。也许每个部分倒计时30分钟。

我希望能够通过菜单选项取消作业(而不是键盘中断)。

因此,程序的交互部分仍然允许用户在作业运行时检查其他菜单选项。

我的初步问题如下。我知道我可以研究其中的大部分,但我想知道我是否问自己正确的问题。

  1. 这份工作需要在后台运行吗?如果是这样,我如何在后台取消某些内容?
  2. 启动背景的最佳方式?
  3. 我可以显示30分钟倒数,同时仍保持互动性吗?
  4. 粗略插图:

    Running Jobs:
    Job 1: 29:30 time left
    Interactive console menu:
    1. Start Job 1 - started
    2. Do other things 
    3. Exit
    

2 个答案:

答案 0 :(得分:2)

背景部分更容易。有许多库,例如TwistedgeventTornado,它们提供事件循环支持。您可以使用它们的事件循环来使作业在后台运行。还有像schedule这样的库可以执行类似cron的作业调度。

保持互动性是困难的部分。您必须使用subprocessthreading来启动作业以保持终端的交互性。要显示倒计时时间,您可能需要使用urwidnpyscreen这样的curses lib。

答案 1 :(得分:1)

我发现npyscreen对于轻松创建漂亮的控制台应用程序非常有帮助。查看keybindings section以了解如何设置关键处理程序。