argparseコマンドライン解析パッケージ

2551 ワード


1. argparse
pythonのコマンドライン解析パッケージで、読みやすさに優れたプログラムを非常に記述し、一般的に3つのステップがあります.
  • ArgumentParser()オブジェクトを作成する
  • add_を呼び出すArgument()メソッド追加パラメータ
  • parse_を使用Args()解析追加パラメータ
  • 2.positional arguments
    パラメータの値を指定する方法--パラメータ名またはパラメータ名(二重引用符または一重引用符)を直接使用します.
    import argparse
    
    parser = argparse.ArgumentParser()
    parser.add_argument('integer', type=int, help='display an integer')
    args = parser.parse_args()
    
    print args.integer

    図の例のようにintegerに整数を入力する必要があります.
    1⃣10.規定のタイプに従って値を付与していない.
    2⃣10.未定義の変数を与える.
    3⃣10.位置決めパラメータ法を使用する場合、複数のパラメータがある場合、付与部分のみが間違っている.----呼び出しがなくても、すべてのパラメータに値を付ける必要があります.
    以上の状況はいずれも、間違いを報告します.
    3. optional arguments
    オプションのパラメータ値---2つの表現
  • は、-によって指定される短いパラメータ、例えば-hである.
  • は、--によって指定する長パラメータである、例えば--help;
  • である.
    この2つの方法は同じように保存してもよいし,1つだけ存在してもよい.
    import argparse
    
    parser = argparse.ArgumentParser()
    parser.add_argument("--integer", type=int, help='display an integer')
    parser.add_argument('-float', type=float, help='display an integer')
    args = parser.parse_args()
    
    print (args.integer)
    print(args.float)
    

    テスト
    >> python3 02.py 3 2.5
    usage: 02.py [-h] [--integer INTEGER] [-float FLOAT]
    02.py: error: unrecognized arguments: 3 2.5
    >>python3 02.py --integer 3 2.5
    usage: 02.py [-h] [--integer INTEGER] [-float FLOAT]
    02.py: error: unrecognized arguments: 2.5
    >> python3 02.py --integer 3 -float 2.5
    3
    2.5

    説明:
    1⃣10.--宣言と--賦課は一つ一つ対応しなければならない
    2⃣10.--と-は形式のみであり,パラメータ名の長さに非常に厳しい要求はない.
    3⃣10.オプションパラメータ法で複数のパラメータを宣言する場合、部分のみに値を付けることができ、エラーは報告されません.割り当てられていないパラメータが呼び出されていないことを前提とします.
     
    4.オプションのパラメータ
     
    import argparse
    
    parser = argparse.ArgumentParser()
    parser.add_argument("--integer","-int", type=int, help='display an integer')
    parser.add_argument('-float',"-f", type=float, help='display an integer')
    args = parser.parse_args()
    
    print (args.integer)
    print(args.float)
    

    同じ変数に2つの名前が与えられ、呼び出すときに長い名前のものを使用します.そうしないと、エラーが発生します.ただし、パラメータを割り当てる場合は、どちらに渡してもよい.
    >>> python3 02.py --int 3 -f 2.5
    Traceback (most recent call last):
      File "02.py", line 8, in 
        print (args.int)
    AttributeError: 'Namespace' object has no attribute 'int'

     
     
    参照先:https://www.jianshu.com/p/fef2d215b91d