2012-10-24 9 views
5

私は、コマンドラインから呼び出され、Python 2.6でキーワード引数を使用できるプログラムを作成しようとしています。これまで私が試してみた:python実行ファイルのkwargs

#!/usr/bin/python 
def read(foo = 5): 
    print foo 
    return 0 
if __name__ == '__main__' 
    read() 

私は、コマンドラインからこれを実行しようとすると:./test.pyプログラムプリント5予想通り。 ./test.py foo=6を使用する方法はありますか?私はキーワード引数を保持したい。

これは簡単な質問のようですが、私はこれに関する良い情報源を見つけられませんでした。

+2

この目的のためだけの['argparse'](http://docs.python.org/dev/library/argparse.html)モジュールを見てください。 –

答えて

6

pythonには、コマンドライン引数をスクリプトに渡すためのライブラリが組み込まれています。 argparse。使い方は、あなたがsys.argvにより、すべてのコマンドライン引数にアクセスすることができ、基本的なレベルでは...

あなたががあなたの質問に記述されているものを、その後少し異なって申し訳ありませんが、引数

のリストされる必要がありますPython 2.6ライブラリは、optparseと呼ばれています

+0

クイックコメントありがとう。残念ながら私はPython 2.6を使用していますので、 'argparse'はunavailbaleなので、' sys.argv'をキーワード引数で使用する方法は決まっていません。 – greatscott

+1

@greatscott:python2.6に 'getopt'があります。これはあなたの場合に行うべきことです。 – SilentGhost

+1

2.6 optparseもあります –

3

何かこれは何ですか?つまり、argparseとoptparseはおそらくコマンドラインに慣れた人にとってより堅牢で自然なものを与えるでしょう。 (文字列以外の型の引数をサポートしていることは言うまでもありません)実際にはの場合は、関数のインタラクティブな使用の後にインタラクティブなインタプリタを使用してください。 pythonまたはipythonです。コードを.pyで終わるファイルに入れてインポ​​ートする必要があります。それを呼び出すことができます。

+0

ありがとう。私は実際に 'python'や' ipython'を使う代わりにコマンドラインからすべてを動かすことを望む同僚のためにこれを書いています。私は助けに感謝します。 'optparse'をチェックアウトします。 – greatscott

1

あまり一般的ではありませんが、非常に興味深いのはdocoptです。プログラムのヘルプメッセージ(on github)から引数パーザを生成するライブラリです。

関連する問題