Pythonのargparseモジュールは、コマンドライン引数の解析を容易にするためのツールです。このモジュールを使用すると、プログラムが必要とする引数を定義し、argparseがそれらをsys.argvから解析する方法を決定します。
argparseモジュールの主な機能は、argparse.ArgumentParserのインスタンスを作成することです。このインスタンスは、引数仕様のコンテナであり、パーサ全体に適用するオプションを持っています。
parser = argparse.ArgumentParser(
prog='ProgramName',
description='What the program does',
epilog='Text at the bottom of help'
)
ArgumentParser.add_argument()メソッドは、個々の引数仕様をパーサにアタッチします。これは位置引数、値を受け取るオプション、オン/オフフラグをサポートします。
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
ArgumentParser.parse_args()メソッドはパーサを実行し、抽出されたデータをargparse.Namespaceオブジェクトに配置します。
args = parser.parse_args()
print(args.filename, args.count, args.verbose)
add_argument()メソッドのnargsパラメータは、引数が使用できる回数を指定します。nargsにはint, ‘?’, ‘*’, ‘+’などの値を指定できます。
例えば、次のコードは、整数のリストを取り、合計または最大値を生成するPythonプログラムです。
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))
以上がPythonのargparseモジュールとargs nargsの基本的な使い方についての説明です。これらの知識を活用して、より効率的なコマンドラインインターフェースを作成しましょう。