我有一个固定的2小时工作(四个30分钟部分),我想从Python控制台应用程序的菜单选项开始,我正在寻找设计帮助。
当用户单击菜单选项以启动作业时,我想在作业运行时提供某种状态。也许每个部分倒计时30分钟。
我希望能够通过菜单选项取消作业(而不是键盘中断)。
因此,程序的交互部分仍然允许用户在作业运行时检查其他菜单选项。
我的初步问题如下。我知道我可以研究其中的大部分,但我想知道我是否问自己正确的问题。
粗略插图:
Running Jobs:
Job 1: 29:30 time left
Interactive console menu:
1. Start Job 1 - started
2. Do other things
3. Exit
答案 0 :(得分:2)
背景部分更容易。有许多库,例如Twisted,gevent和Tornado,它们提供事件循环支持。您可以使用它们的事件循环来使作业在后台运行。还有像schedule这样的库可以执行类似cron的作业调度。
保持互动性是困难的部分。您必须使用subprocess
或threading
来启动作业以保持终端的交互性。要显示倒计时时间,您可能需要使用urwid或npyscreen这样的curses lib。
答案 1 :(得分:1)
我发现npyscreen对于轻松创建漂亮的控制台应用程序非常有帮助。查看keybindings section以了解如何设置关键处理程序。