Python学習ノート-argparse
4174 ワード
argparseモジュールを使用すると、Pythonスクリプトがコマンドラインから必要なパラメータを容易に取得し、解析できます.使用は非常に簡単で、数行のコードだけでいいです.公式サイトのドキュメントから学んだ後、心得を共有します.公式サイトリンク:15.4.argparse—Parser for command-line options,arguments and sub-commands—Python 2.7.11 documentation
add_Argument()メソッドのパラメータの説明1.name or flags add_Argument()に必要な唯一のパラメータであり、簡単に言えば、このパラメータはコマンドラインから取得したいパラメータの名前ですが、destこそ取得したパラメータの名前ではありません.パラメータを示すフラグに似ています.1つの名前でも複数のオプションの名前でも構いません. argparseで取得したコマンドラインパラメータには、optional argumentとpositional argumentの2種類があります.違いはname or flagsに現れる. optional argumentはオプションのパラメータで、コマンドラインでスクリプトを実行するときに入力しなくてもかまいません(スクリプトにこのパラメータが必要なくても正しく実行できる場合).add_Argument()のname or flagsには、接頭辞'-'が必要であり、 などの複数のオプションがあります.コマンドラインにこのパラメータを入力(または使用)する場合は、このname or flagsを書く必要があります.すなわち、入力したパラメータとの間隔にスペースまたは等号があります.入力したパラメータがそれに対応するoptional argumentであることを示します.パラメータを持たずにname or flagsのみを入力する場合もあります.デフォルトの'-h'のように. positional argumentは入力しなければならないパラメータ(一般的には)であり、スクリプトを実行するときに対応するパラメータが入力されていない場合はエラーが報告されます.そのname or flagsは'-'接頭辞を持たない名前でなければなりません.コマンドラインにこのname or flagsを入力する必要はありません.parserが複数のargumentを追加しすぎる場合はparse_args()を呼び出します.場合、接頭辞'-'を持つoptional argumentはすべて認識され、残りのパラメータは順番に対応するpositional argumentと見なされます. 2.actionは、コマンドラインパラメータの処理方法を示します.次のオプションがあります. 'store'-入力したパラメータを保存します.これはデフォルトです. ‘store_const’-optional argumentと組み合わせて使用し、コマンドからargumentが現れるとconstの定数を保存します. 「store_true」and「store_false」-上の「store_const」と同様に、真偽値が保存されているだけで、コマンドラインでargumentが使用されている場合は、対応する真偽値が保存され、そうでない場合は逆の値が保存されます. 「append」-optional argumentと組み合わせて使用し、入力するパラメータごとにリストを保存します.このargumentはコマンドラインに複数回入力できます. 「append_const」-コマンドラインに表示された同じdestを持つargumentごとのconstというリストを保存します.同じリストに複数の定数を保存するために使用できます.parse_args()で返される本物のものはdestです. 「count」-optional argumentと組み合わせて使用し、コマンドラインに表示される回数の整数を保存します. ‘help’ ‘version’
.nargsは、コマンドラインから読み出したパラメータの数を示す責任を負います.次のオプションがあります. N(an integer)-使用後、N個のコマンドラインパラメータが1個のリストに保存され、Nが1の場合でも1個の要素のみのリストが保存されます. '?'-パラメータが保存され、このargumentを使用しない場合はdefaultの値が保存され、optional argumentまたはpositional argumentと組み合わせてもよく、optional argumentと組み合わせると、パラメータが入力されずにそのargumentのみが使用される場合、182はconstの値が保存されます. '*'-任意の複数のパラメータを1つのリストとして保存し、複数のpositional argumentで使用できません.1つは可能です.複数のoptional argumentで使用できます.2つ以上のpositional argumentで使用されている場合、パラメータに対応するargumentは区別されません.optional argumentはパラメータの前にname or flagsを書く必要があります.は、この問題は存在しません. '+'-'*'と似ていますが、パラメータの数は少なくとも1です. argparse.REMAINDER-残りのコマンドラインパラメータはすべて1つのリストに保存されます. 4.const名前の通り、定数は、コマンドラインからパラメータを受信せずに、いくつかのactionとnargsと組み合わせて使用されます.このconstの値は保存されます.constのデフォルト値はNoneです. 5.defaultデフォルト値.すべてのoptional argumentsおよびいくつかのpositional argumentsがコマンドラインに表示されない場合、defaultが機能します.optional argumentsのname or flagsがコマンドラインに表示されない場合、defaultの値が保存されます.defaultの値が文字列の場合、解析器はコマンドラインから取得するように解析します.positional argumentsとnargsが'?'または'*'を組み合わせた場合、default値は、それに対応するコマンドラインパラメータが現れない場合に保存されます.default値がargparse.SUPPRESSの場合、コマンドラインに対応するコマンドラインパラメータが現れない場合、このargumentが存在しないとみなされます. 6.typeデータのタイプは、様々なタイプ、さらにはカスタマイズ可能です.取得した文字列は、対応するデータ型を自動的に変換します. 7.choicesオプションです.入力したコマンドラインパラメータはここに含まなければなりません.そうしないと、エラーが発生します.in操作を持つオブジェクトはchoicesです. 8.required必須、required=Trueの場合、このoptional argumentsはコマンドラインに表示されなければなりません.そうしないとエラーが発生します.しかし、これは矛盾しています.このオプションのパラメータは必須です. 9.helpはあまり言わない. 10.metavar help情報を印刷すると、表示される各argumentの名前. 11.destコマンドラインから取得したパラメータ(constまたはdefault)、最終的にdestに保存され、自動的に生成される名前はname or flagsに依存します.positional argumentであれば、このname or flagsです.optional argumentであれば、name or flagsの中で最も長い名前の1つを取り、'--'、および残りの'-'を''に変換し、長い名前がなければ最初の短い名前を取ることもできます.自分で再定義し、add_argument()にこのパラメータdest=を加えればよい. add_argument()が使用されます.方法、argparseはすでに大半を掌握しており、一般的に運用するのはもう問題ありません.argparseのより多くの使い方やテクニックについては、公式ドキュメントに紹介されていますが、私は一つ一つ列挙しません.文には何のコードも挿入されていません.詳細は公式ドキュメントに行って見ることができます.英語があまりよくなくても、Pythonコードは十分理解できます.
add_Argument()メソッドのパラメータの説明
parser.add_argument('-f', '--foo')