Python: 02. argparse - ikymrkw/pydepot GitHub Wiki

See also: https://docs.python.org/ja/3/library/argparse.html

基本的な使い方

import argparse

parser = argparse.ArgumentParser(
                    prog='ProgramName',
                    description='What the program does',
                    epilog='Text at the bottom of help')

parser.add_argument('filename')                              # positional argument
parser.add_argument('-c', '--count')                         # option that takes a value
parser.add_argument('-v', '--verbose', action='store_true')  # on/off flag without a value

args = parser.parse_args()
print(args.filename, args.count, args.verbose)

引数に与えられる様々なオプション(組合せも可能):

parser.add_argument('-a', choices=['md5', 'sha1'])  # or range or Container
parser.add_argument('-u', default='anonymous')      # None if not specified
parser.add_argument('-x', required=True)
parser.add_argument('--age', type=int)  # typeの引数は型ではなく関数なのに注意
parser.add_argument('-n', help='Number of trials')

複数回同じ引数を受け取り、自動的に処理する(列挙、連結、可算など)方法も提供されている。

必須の引数(positional か required)が与えられなかった場合、 parser_parse_args() の時点でヘルプを表示して exit(1) (?) するらしい。