Cucco’s Compute Hack

コンピュータ関係の記事を書いていきます。

pythonの引数ライブラリargparse

argparseのサンプルコード。-から始まる名前にしてOptional引数にして、
action="store_true"をつけておけば、フラグとして利用できそう。

プログラム
import argparse

if __name__ == "__main__":

    parser = argparse.ArgumentParser()

    # 必須引数(=位置引数)を追加
    # type=intがない場合は文字列
    parser.add_argument(
        "square", help="display a square of a given number", type=int)
    parser.add_argument(
        "base", help="display a square of a given number", type=int)

    # Optional引数
    # 引数に -v があれば、args.verbosityはTrueになる
    parser.add_argument("-v", "--verbosity",
                        help="increase output verbosity", action="store_true")

    # Optional引数
    # とれる値の指定のある引数
    parser.add_argument("-c", "--choices", type=int,
                        choices=[0, 1, 2], help="increase output verbosity")

    args = parser.parse_args()

    # 引数の参照方法/値確認
    print(args.square**2)
    print(args.base)

    if args.verbosity:
        print("verbosity turned on ", args.verbosity)
    else:
        print("verbosity turned off ", args.verbosity)

    print("choices:", args.choices)
-h の結果
(base) c:\dev>python a00_main.py -h
usage: a00_main.py [-h] [-v] [-c {0,1,2}] square base

positional arguments:
  square                display a square of a given number
  base                  display a square of a given number

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbosity       increase output verbosity
  -c {0,1,2}, --choices {0,1,2}
                        increase output verbosity
実行結果
(base) c:\dev>python a00_main.py -v -c 2 5 6
25
6
verbosity turned on  True
choices: 2