0

コマンドラインユーティリティインターフェイスを追加したいプログラム用のコマンドラインインタープリター(またはモジュールのPythonドキュメントでは「行指向のコマンドインタープリター」 )があります。 たとえば、セッションは次のようになります。(シェルプロンプトの場合、カスタムプロンプトです)(コマンドラインインタープリターを呼び出します) さらに、次のインターフェイスが必要です。cmd

%:)
% tasks
:) clockHours Teaching_Sara_to_coregister_T1_to_T2
:) exit


% tasks clockHours Teaching_Sara_to_coregister_T1_to_T2

コマンドラインユーティリティのサブコマンドにマップされたカスタムインタプリタコマンドを想定しています。これらを一緒に行うためのライブラリはありますか?完了コードを2回記述したり、コマンド構造コードを2回記述したりする必要がないのは素晴らしいことです。そうでない場合、この動作を実装しようとした場合のアドバイスや、それがどれほど役立つかについて考えてみてください。

明らかに、単純な一時変数の利点を失います。そのため、最初はインタープリターアプローチを使用していましたが、カスタムインタープリターコマンドの多くはこの動作に依存していないか、必要としないように簡単に変更できます。コマンドラインユーティリティのサブコマンドが必要なサブセット。

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 に答える