📚
python parser リファレンス
TL;DR
- parserメモ
通常のparser
parser.py
from argparse import ArgumentParser
def parse_args():
parser = ArgumentParser(description='')
parser.add_argument('env', # 引数名、--なしの場合は必須、ありの場合は任意
choices=['prd', 'stg', 'dev'], # 引数の選択肢
type=str, # 引数の型
help='')
parser.add_argument('--date',
metavar='yyyy-mm-dd', # 引数の名前
type=str,
default='2000-01-01', # 引数を指定しない場合のdefault、defaultを指定しない場合はNoneが入る
help='')
parser.add_argument('--commit',
action='store_true', # 動作
default=False,
help='')
return parser.parse_args()
args = parse_args()
print(args)
サブコマンドありのparser
subcmd_parser.py
from argparse import ArgumentParser
def parse_args():
parser = ArgumentParser(description='')
subparsers = parser.add_subparsers()
# サブコマンドの処理
parser_print_args = subparsers.add_parser('print_args', description='') # サブコマンドとヘルプを指定
parser_print_args.add_argument('hoge', type=str, help='hogehoge')
parser_print_args.set_defaults(handler=print_args) # サブコマンドが呼び出す関数名を指定
args = parser.parse_args()
if hasattr(args, 'handler'):
return args
else:
parser.print_help()
exit(1)
def print_args(args):
print(args)
args = parse_args()
args.handler(args)
Discussion