如何在Python中为命令行应用构建交互式菜单?
我一直在使用click来制作一个命令行程序。现在我正在以一种非常文本化的方式实现交互式菜单。例如:
1-option #1
2-option #2
Enter the index of the option you want to select:
但我希望能以更优雅和互动的方式来实现这个功能。例如,我很喜欢Yeoman实现菜单的方式。下面是菜单运行的效果。

有没有什么Python库可以让我们像这样构建命令行菜单?我看过像curses、cmd等库,但它们似乎需要一个单独的窗口来管理,看起来不太像Python的风格。
1 个回答
3
curses
,或者类似的东西,确实是你想要的。
虽然 curses
可以用来弹出带边框的“窗口”,清空整个窗口等等,但它最基本的功能是让你控制终端窗口——比如移动光标、突出显示文本,以及你想做的其他事情。
一些更高级的库,比如 urwid
,会让事情变得更简单,但它们可能会让你的界面看起来更固定,不一定符合你的需求。不过,curses
完全可以用来实现你想要构建的东西。
curses
唯一真正的问题是它并不是到处都有。几乎所有的 *nix 平台都有它,但 Windows 就没有。不过,解决办法也差不多——有一些可以模拟 curses
的库,或者专门为 Windows 设计的 conio
库(包括一个在标准库中有限的版本,位于 mscvrt
里)。