argparseモジュール使用

2886 ワード

argparse
argparseはコマンドラインインタフェースを記述するために使用されます.Argparseは引数Argumentを用いてプログラム中の変数を変更する.
#videos.py
import argparse

parser = argparse.ArgumentParser(description='Videos to images')
parser.add_argument('indir', type=str, help='Input dir for videos')
parser.add_argument('outdir', type=str, help='Output dir for image')

args = parser.parse_args()

print(args.indir)

python videoを実行します.py /videos/images
一般手順
  • argparseモジュール
  • にインポート
  • はargparseを利用する.ArgumentParserインスタンス化parserオブジェクト
  • add_を使用Argumentメソッド作成変数
  • parserを使用する.parse_Args()解析
  • 注意:変数を渡すときは、/videosおよび/imagesに引用符を付ける必要はありません.
    位置パラメータ
    parserを呼び出すたびにadd_Argumentは位置パラメータを作成します.pythonでは位置パラメータの順序が重要で、コマンドラインの最初の値が最初の値に渡されます.
    位置パラメータ、2番目の値が2番目の位置パラメータに渡されます.
    ユーザーがプログラムに無効なパラメータを提供すると、argparseモジュールはヘルプと使用メッセージを自動的に生成し、エラーを発行します.例えば、直接端末で実行する
    python video.pyでエラーが発生します:videos.py: error: the following arguments are required: indir, outdir.
    オプションのパラメータ
    オプションのパラメータは、名前の先頭に'--'(または'-'と追加の略語)がある以外は、位置パラメータと同様に作成されます.たとえば、
    オプションのパラメータを作成できます.
    # my_example.py
    import argparse
    
    parser = argparse.ArgumentParser(description='My example explanation')
    parser.add_argument(
        '--my_optional',
        default=2,
        help='provide an integer (default: 2)'
    )
    
    my_namespace = parser.parse_args()
    print(my_namespace.my_optional)

    オプションのパラメータには、python my_を実行するデフォルト値があります.example.py出力2、python my_を実行example.py --my_optional=3出力3
    add_义齿
    add_Argument()メソッドは、コマンドラインパラメータを解析する方法を定義します.
    ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

    各パラメータは次のように解釈されます.
  • name or flags-オプション文字列の名前またはリスト、例えばfooまたは-f、--foo.
  • action-コマンドラインがパラメータに遭遇したときの動作で、デフォルト値はstoreです.
  • store_constは、constとして付与された値を表す.
  • appendは、遭遇した値をリストに格納する.すなわち、パラメータが重複すると複数の値が保存される.
  • append_constは、パラメータ仕様で定義された値をリストに保存します.
  • count、遭遇した回数を格納します.またargparseを継承することもできる.Actionカスタムパラメータ解析;

  • nargs-読み込むべきコマンドラインパラメータの個数は、具体的な数字でもいいですか?値が指定されていない場合はPositional argumentに対してdefault、Optional argumentに対してconstを使用します.または*番号で、0または複数のパラメータを表します.または+番号は1または複数のパラメータを表します.
  • const-actionおよびnargsに必要な定数値.
  • default-パラメータが指定されていない場合のデフォルト値.
  • type-コマンドラインパラメータを変換するタイプ.
  • choices-パラメータが許容できる値のコンテナ.
  • required-オプションパラメータを省略できますか(オプションパラメータのみ).
  • help-パラメータのヘルプ情報は、argparse.SUPPRESSに指定するとそのパラメータのヘルプ情報が表示されないことを示す.
  • metavar-usageの説明におけるパラメータ名、必須パラメータのデフォルトはパラメータ名、オプションパラメータのデフォルトは全大文字のパラメータ名である.
  • dest-解析後のパラメータ名です.デフォルトでは、オプションのパラメータについて最長の名前を選択し、中線を下線に変換します.

  • 具体例参照https://www.jianshu.com/p/fef2d215b91d