0

我有一个命令行解释器(或模块的python 文档中的“面向行的命令解释器” cmd),用于我想添加命令行实用程序接口的程序。

例如,现在一个会话看起来像这样:(%对于 shell 提示,:)是我的自定义提示)
% tasks(调用命令行解释器)
:) clockHours Teaching_Sara_to_coregister_T1_to_T2
:) exit

另外,我想要这个界面:
% tasks clockHours Teaching_Sara_to_coregister_T1_to_T2

我设想自定义解释器命令映射到命令行实用程序中的子命令。是否有一个图书馆可以一起做这些?不必编写两次完成代码、两次命令结构代码等会很棒。如果没有,如果我尝试实现这种行为,对我有什么建议,或者对它有多大用处的想法?

显然我失去了简单临时变量的优势,这就是为什么我开始使用解释器方法的原因,但是我的许多自定义解释器命令不依赖于这种行为,或者可以很容易地修改为不需要它——就是这样我想要命令行实用程序子命令的子集。

4

2 回答 2

1

cmd如果我正确理解您的问题,模块可能足以满足您的需求。

您的最终解决方案可能接近以下示例:

import cmd
import sys

class MyCmd(cmd.Cmd):
    def do_hello(self, line):
        print "hello"
    def do_exit(self, line):
        return True

if __name__ == '__main__':
    my_cmd = MyCmd()

    if len(sys.argv) > 1:
        my_cmd.onecmd(' '.join(sys.argv[1:]))
    else:
        my_cmd.cmdloop()

给出这种行为:

C:\_work\home>jython cmdsample.py hello
hello

C:\_work\home>jython cmdsample.py
(Cmd) hello
hello
(Cmd) exit

C:\_work\home>
于 2011-01-11T19:49:10.057 回答
1

您可能会发现有用的另一件事是cmdln模块。

于 2012-01-26T14:38:10.583 回答