我有一个命令行解释器(或“面向线的命令解释器” Python文档 为了 cmd 模块)对于我想将命令行实用程序接口添加到的程序。

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

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

我设想自定义解释器命令映射到命令行实用程序中的子命令。是否有一个库一起做这些?不必两次编写完成代码,两次命令结构代码等。

显然,我失去了简单临时变量的优势,这就是为什么我正在使用口译员方法,但是我的许多自定义解释器命令不依赖这种行为,或者可以轻松地修改不需要它 - 就是我想要命令行实用程序子命令的子集。

有帮助吗?

解决方案

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>

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top