如何在python中为命令行应用程序构建交互式菜单?

时间:2014-08-10 10:01:54

标签: python command-line-interface python-click

我一直在与click合作制作命令行程序。现在我正在以非常文本的方式实现交互式菜单。例如:

1-option #1
2-option #2
Enter the index of the option you want to select: 

但我希望以更优雅和互动的方式做到这一点。例如,我喜欢Yeoman实现其菜单的方式。这是菜单的实际应用。 enter image description here

是否有任何python库让我们构建这样的命令行菜单?我看过curses,cmd等库。但它们似乎给你一个独立的窗口来管理和看起来有点unpythonic。

1 个答案:

答案 0 :(得分:3)

curses,或类似的东西,真的是你想要的。

虽然可以使用curses弹出带有边框的“窗口”,但是在它的底部擦除整个窗口等,它是什么让你控制终端窗口 - 移动光标周围,​​突出显示文本,以及您尝试做的所有其他事情。

一些让事情变得更轻松的高级图书馆(如urwid)确实会让您走向更具体的外观。觉得这可能不是你想要的,但curses可以很容易地用于你想要建立的东西。

curses唯一真正的问题是它不是无处不在。几乎所有* nix平台都会拥有它,但Windows不会。但答案没有太大差异 - 有curses - 假冒库或Windows特定的conio库(包括stdlib中的有限库,mscvrt内)。