带有shell提示符的{python命令行界面

时间:2015-12-01 18:43:07

标签: python linux bash shell command-line-interface

我正在研究带有shell提示符的python CLI应用程序。为了澄清,我正在寻找支持2种功能的东西。

1)提供shell提示&自动完成命令,如" cmd"模块支持。例如:"做_"前缀命令。 (do_xyz:do_abc。)

2)提供对多个子命令和选项的支持。例如:

$ python my_prog_prompt.py
(my_prog_prompt)> cmd1 subcmd1 subsubcmd1
(my_prog_prompt)> cmd1 subcmd1 subsubcmd2
(my_prog_prompt)> cmd1 subcmd2 subsubcmd1 -x -y
(my_prog_prompt)> cmd2 subcmd1 
(my_prog_prompt)> cmd2 subcmd1 
(my_prog_prompt)> exit
$

我找到了" cmd"以上模块过于简单化。因为它不支持多个子命令。使用Cement CLI,我可以看到它非常支持多个命令/子命令和选项,但没有shell / prompt接口。可以" cmd"扩展模块以支持上述?或者我可以使用另一个可用的框架或模块,这将给我上述支持。

非常感谢。

1 个答案:

答案 0 :(得分:0)

明显迟到的答案,但我正在寻找类似的选项,这就是我最终实施的目标:

  1. 创建此包装器
  2. $app->register(App\Providers\EventServiceProvider::class);
    
    1. 在课堂上使用它:
    2. def parseargs( f ):
          def wrapper(s, arg ):
              args={ 0: f.__name__ }
              i=0 
              for a in arg.split():
                  i+=1
                  if i>0 and '=' in a:
                      args[i] = a.split('=', 1)
                  else:
                      args[i] = a
             return f(s, args)
          wrapper.__doc__ = f.__doc__
      return wrapper