Python CLI框架和带Tab补全的参数解析



我正在寻找一个好的模块,已经在那里解析自定义CLI接口上的参数。如果你能想象有一个CLI给你提示:

framework> commands go here....

当您添加参数时,它开始变得乏味,例如:

framework> command <argument1> <argument2> ...

我想知道是否有任何类型的模块,不仅可以轻松创建这些CLI界面,而且可以在命令链中为每个参数提供选项卡完成。每次我创造这样的东西,我都厌倦了重新发明轮子!

framework> comma<tab>
framework> command arg<tab>
framework> command argument parame<tab>
framework> command argument parameter

你懂的。如果还没有针对这类事情的模块,任何关于以模块化的方式创建这样的东西的优雅解决方案的建议,将不胜感激。

请注意,我不想解析通过父进程命令shell(如bash)传入的参数,我想在脚本本身的无限while循环中进行处理。例如:

while (True):
    cmd = raw_input("framework> ")
    framework.process_command(cmd)

看一下Click, "一个Python包,用于以可组合的方式使用尽可能少的代码创建漂亮的命令行界面":http://click.pocoo.org/5/

在python中,您有一个名为argparse的内置模块来管理CLI参数应用程序,现在看看这个模块argparse扩展用于制表符完成https://pypi.python.org/pypi/argcomplete/0.8.4

看起来内置的cmd模块提供了你正在寻找的东西。它支持命令和参数的制表符补全。下面是PyMOTW的教程。另一个例子

如果你需要更多的自定义,还有cmd2扩展了内置的cmd

最新更新