Pythonのargparseモジュールは、コマンドラインインターフェースの作成を容易にします。このモジュールは、ユーザーフレンドリーなコマンドラインインターフェースを作成するための機能を提供しています。また、argparseモジュールは自動的にヘルプと使用法のメッセージを生成します。
argparseモジュールの主要な機能は、argparse.ArgumentParserのインスタンスを中心に構築されています。ArgumentParserは、引数の仕様のコンテナであり、パーサ全体に適用されるオプションを持っています。以下に、基本的なargparseの使用方法を示します。
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
args = parser.parse_args()
print(args.filename, args.count, args.verbose)
上記のコードでは、argparse.ArgumentParser
のインスタンスを作成し、そのインスタンスに引数の仕様を追加しています。add_argument
メソッドは、位置引数、値を取るオプション、オン/オフフラグをサポートしています。
さらに、argparseを使用して、一般的なCLIにおける--help
や--version
のような動きをするコマンドを実装することも可能です。具体的には、他の引数やオプションよりも優先して実行され、実行された後、即時終了するという要件を満たすことができます。
以下に、そのようなコマンドを実装したサンプルスクリプトを示します。
import sys
from argparse import SUPPRESS, Action, ArgumentParser
def show_system_version():
print(sys.version)
class SampleAction(Action):
def __init__(self, option_strings, dest=SUPPRESS, default=SUPPRESS, help=None):
super().__init__(
option_strings=option_strings,
dest=dest,
default=default,
nargs=0,
help=help,
)
def __call__(self, parser, namespace, values, option_string=None):
show_system_version()
parser.exit()
def main():
parser = ArgumentParser()
parser.add_argument(
"-S", "--system",
action=SampleAction,
help="show system version and exit"
)
parser.add_argument("--mushi", help="無視されるべきオプション")
args = parser.parse_args()
print(args.mushi)
if __name__ == "__main__":
main()
このスクリプトでは、-S
または--system
をオプションとして与えられたときに、print(sys.version)
を実行して処理を終了します。このように、argparseモジュールを使用することで、Pythonで高度なコマンドラインインターフェースを簡単に作成することができます。
以上が、Pythonのargparseモジュールの拡張ヘルプ機能についての解説です。この情報がPythonのコマンドラインインターフェースの作成に役立つことを願っています。