2

PythonでCLIをシミュレートするように依頼されました。

これは私がしたことです

def somefunction(a,b):
    //codes here
//consider some other functions too

print "--- StackOverFlow Shell ---"
while True:
    user_input = raw_input("#> ")
    splitit = user_input.split(" ")
    if splitit[0] == "add":
        firstNum = splitit[1]
        sNum = splitit[2]
        result = somefunction(firstNum, sNum)
        print result
    //consider some other elif blocks with "sub", "div", etc
    else:
        print "Invalid Command"

リストの長さもチェックします。ここで「splitit」は3つの引数のみを許可します。最初は操作で、2番目と3番目は、引数が3、そのために私はチェックを入れます。

どういうわけか私はそれを機能させることができますが、同じことを達成するためのより良い方法はありますか?

4

2 に答える 2

10

PythonCMDモジュールを使用します。

以下のページにあるいくつかの例を確認してください

http://docs.python.org/library/cmd.html#行指向のコマンドインタープリターのサポート

http://www.doughellmann.com/PyMOTW/cmd-#行指向のコマンドプロセッサを作成する

promptユーザーが新しいコマンドを要求されるたびに印刷される文字列に設定できます。

introプログラムの開始時に出力される「ようこそ」メッセージです。

例えば:

import cmd

class HelloWorld(cmd.Cmd):
    """Simple command processor example."""

    prompt = 'prompt: '
    intro = "Simple command processor example."
于 2012-07-16T07:16:48.080 に答える
1

VTEライブラリを確認する必要があります。

http://earobinson.wordpress.com/2007/09/10/python-vteterminal-example/

それは本当にうまく機能し、あなたはその外観を非常に簡単にカスタマイズすることができます。これはとても簡単です:

    # make terminal
    terminal = vte.Terminal()
    terminal.connect ("child-exited", lambda term: gtk.main_quit())
    terminal.fork_command()

    # put the terminal in a scrollable window
    terminal_window = gtk.ScrolledWindow()
    terminal_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
    terminal_window.add(terminal)
于 2012-07-16T11:01:58.780 に答える