2016-05-02 8 views
0

私はあなたにいくつかの文脈を与えるために何をしているのかを説明しましょう。 私はPythonスクリプト(argparsまたはoptparsを使用する)の束を持っており、その出力は通常json、plaintextまたはcsv形式のコンソールに置くことができます。Pythonスクリプトから引数を抽出する

私は、スクリプトを実行するためにPythonスクリプトが必要とする引数の入力ボックスを含め、スクリプトごとに自動的にWebページを生成するwebapp(angular + node)を構築したいと思います。 UI。

Pythonスクリプトごとに、実行する必要がある引数のリストとタイプを書いてはいけませんが、私はこのようなリストフォームを各Pythonスクリプト自体から抽出する自動方法を探しています。

スクリプトごとに-h出力を解析したり、スクリプト自体を解析したり(add_option)、エラーが発生する可能性があります。

私は自動的に実行できるツール/スクリプト/モジュールについて認識していますか?

ありがとうございます。

+0

各スクリプトが '-h'をサポートしていると仮定すると、多分[docopt'](http://docopt.org/)は結果を解析できます。 –

+0

@Robᵩありがとうございますが、それはargparseの代わりにもっと見える.. – Vincenzo

+0

あなたは誤解しています。 'somescript -h'を実行し、出力をキャプチャし、その出力を' docopt'のパーサーに渡し、結果のデータ構造を使ってHTMLを生成する必要があります。あなたが意図した通りに 'doctopt'を使用しないでしょう。 –

答えて

1

inspectモジュールは、ここに役立ちます:

>>> import inspect 
>>> def example_function(a, b, c=1234): 
     pass 
>>> inspect.getargspec(example_function) 
ArgSpec(args=['a', 'b', 'c'], varargs=None, keywords=None, defaults=(1234,)) 
+0

'plac'パッケージ(https://pypi.python.org/pypi/plac)は、このような' inspect'を使って、このような関数を実行できるパーサーを作成します。関数の引数に対応する引数を作成します。しかし、すでに 'argparse'を使っているスクリプトを調べるのに役立つとは思いません。 – hpaulj

0

あなたはスクリプトとそのパーサに持っているもののアクセスについて詳しく説明する必要があります。あなたは-hとだけ呼び出すことができ、ヘルプや使用法のメッセージを返すことができるブラックボックスですか、parserを調べることはできますか?

たとえば、​​を使用する場合は、parserを作成し、属性を割り当てて、引数Actionsを作成します。これらのアクションオブジェクトはリストparser._actionsに集められます。

parser.format_helpおよびparser.format_usageの方法を参照して、どの値がヘルプフォーマッタに渡されて文字列ディスプレイを作成するかを確認してください。

argparse.pyファイルを調べる以外に、対話型セッションでパーサーを作成し、作成されたオブジェクトを調べることをおすすめします。

関連する問題