docoptは何ですか?
1、docoptは、スクリプト言語のPythonのコマンドラインインタラクティブ実行を記述することです。
それは言語です!
それは言語です!
それは言語です!
2、この言語の使用は、いくつかのルールの制限を追加し、独自のスクリプトにすることができます。スクリプトは、実装の過程で、この形式に従って行われなければならないように、同時に、あなたも簡単にあなたが-h入力したときなどのpython -hとして、情報を表示するために、実際には(ソフトウェアの多くをいくつかの助けを書くことができ、Pythonコマンドのすべてを表示しますそして、ページコマンド形式を制限するのpython docopt)を介して、次はいくつかの簡単な例です:
docoptインストール
docoptは、異なる言語をサポートし、バージョンの多くを持って、最も簡単には、Python言語、docopt.javaサポートJavaスクリプト、docoptsをサポートすることですシェルスクリプトをサポートすることである(主なもの以下の例は、例えばdocoptsするため)
1、インストールdocopt
この方法の一つ:
docoptをインストールするPIP
方法2:
あなたはgithubの上のソースコード(オープンソースプロジェクトをdocopt)をダウンロードした後、setup.py installをPythonがインストールすることができます
2、実装方法は、ダウンロード、インストール、使用してのpythonをインストールするdocoptsの2つのインストールdocopt上で使用されている必要があります。https://github.com/docopt/docopts
簡単な分析docopt
Pythonで__doc__を、そのような性質を持って、その値は、文字列、一般的に指定されたヘルプ情報であり、docoptを解析することができるで説明した解析コマンドラインパラメータを交換するのに役立つ属性情報として利用されています:
例えば:
""」海軍運命。 使用法: naval_fate.py船新しい <名前> ... naval_fate.py船 <名前>移動<X> <Y> [--speed = <KN> ] naval_fate.py船シュート <X> <Y> naval_fate.py鉱山(セット |除去)<X> <Y> [--moored | - ドリフト] naval_fate.py( -h | - ヘルプ) naval_fate.py - バージョン オプション: -h -表示助けるこの画面を表示する。 - バージョンを表示バージョン。 --speed = <KN>スピードにノット[ デフォルト:10 ]。 -係留(アンカー)鉱山を係留。 - 鉱山を漂流漂流。 ""」 からdocoptインポートdocopt 場合 __name__ == ' __main__ ' : 引数 = docopt(__ doc__内の例題、バージョン= ' 海軍運命2.0 ' ) プリント(引数)
上記のコードは、ヘルプの大部分は、説明を解決するために、当社のコマンドラインパラメータで、機能のエントリは、パラメータの値が何であるか、関数が返される引数変数は、オプションが選択されているかどうかを記録し、変数の辞書であり、解析しdocoptと呼ばれますその他の情報は、プログラムをコマンドラインから実行するとき、我々は引数の変数の記録によると、ユーザーが入力したオプションやパラメータ情報を知っています。
だから、コマンドラインパラメータの解析命令の書き方を非常に重要であり、情報を解析するコマンドラインは二つの部分、すなわち、使用パターンやフォーマットオプションの記述形式を含んでいます。
使用モードのフォーマット(使用パターン形式)
使用モードフォーマットの使用:上記のコードは、主に、解析はこのフォーマットに従って実行される使用される形式でパラメータを指定してコマンドを追加するために、ユーザのフォーマットを説明しているように空白行で始まるは、終了します。
各使用パターンは次の要素が含まれます。
*パラメータ
囲まれたパラメータの大文字または山括弧<>
*オプション
オプションはダッシュで開始又は - 、唯一の文字形式-oで、--outputつ以上の文字、また、単一文字の複数のオプションを組み合わせることができ、-ov等価-o、-v、 -i .. オプションすることができます
パラメータは、その後の説明オプション説明を追加することを忘れないでください
次に、いくつかを使用すると、より良い完全な分析タスクにそれらを使用する権利の意味で使用されるパターンを識別します。
* []
要素は、角括弧のオプション、非本質的な要素を表します
*()
必要な要素のいくつかの代表は、要素は、複数の内部選択場合でも、括弧内にある必要があります
* |
相互に排他的な要素、要素の両側の縦線は一つだけ残すことができます
* ....
要素を代表したときに、結果の最終的な解釈のリスト、繰り返すことができます
* [オプション]
特定のオプションを指定して、特定のタスクを完了します。
オプション説明形式(オプションの記述形式)
当事者はオプションパラメータがあり、また、それをタイムアウトのデフォルト値を必要とする場合は特に、同様に不可欠なオプション説明。
フォーマットパラメータが追加され、2つのオプションがあります。
-FILEの#--output -o FILEは、=記号を使用していないコンマ
-i <ファイル>、--input =使用されていない<ファイル>#コンマ記号
ちょうど2つのスペースにセグメンテーションオプションを使用すると説明ができ、オプションとして、記述の説明を追加します
デフォルトのオプションが追加され、それが後に、次の形式で説明した選択に追加することができます[defailt:<私のデフォルト値>}
--coefficient = Kザ・K係数[ デフォルト:2.95 ] --output = FILE出力ファイル[ デフォルト:test.txtの] --directory = DIRいくつかのディレクトリ[ デフォルト:./]
あなたはオプションを複製することができた場合は、その値[デフォルト:...]を押して、繰り返すことができた場合、それは文字列値で、リストになります。
使用
フォーマット形式とオプション説明使用パターンを理解した後、実施例では、より良い理解して与えることができます。
次のステップは、入力された情報を取得することです
型パラメータを上述の引数は、ユーザ入力のオプションやパラメータの情報が含まれている辞書であり、または先の実施例における上記のコードの端我々はコマンドラインを実行する場合、入力され
Pythonのtest.py船ガーディアン移動100 150 --speed = 15
次のように印刷引数のパラメータは次のとおりです。
{ ' --drifting ' :Falseを、 ' --helpを' :偽、 ' --moored ' :Falseを、 ' --speed ':' 15 ' 、 ' --version ' :Falseを、 ' <名前> ':[ ' ガーディアン' ]、 ' <X> ':' 100 ' 、 ' <Y> ':' 150 ' 、 '鉱山" :Falseに、 ' 移動' :真、 ' 新しい' :偽、 ' 削除' :偽、 ' 設定' :Falseに、 ' 船' :真、 ' 撮影':偽}
印刷情報から、このオプションは特定の値を表現するために使用されているかどうかを識別するために、オプションのためにブール入力を行くことができます。
このように、あなたは、可変引数で動作する次のプログラムを得ることができ、ユーザーが任意のパラメータを入力しなかった場合は、印刷の使用説明書プロンプト内容。