Pythonのargparse
モジュールは、コマンドラインインターフェースの作成を簡単にします。このモジュールは、プログラムが必要とする引数を定義し、それらの引数を解析する方法を見つけ出します。
argparseモジュールの基本的な使い方
まず、argparse.ArgumentParser
のインスタンスを作成します。
import argparse
parser = argparse.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
最後に、parse_args()
メソッドを使用して、コマンドライン引数を解析します。
args = parser.parse_args()
print(args.filename, args.count, args.verbose)
argparseモジュールの詳細な使い方
argparse
モジュールは、より詳細なコマンドライン引数の設定も可能です。
例えば、特定のオプションが指定されたときに特定の関数を実行し、その後プログラムを終了するような動作を実装することも可能です。
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()
このように、argparse
モジュールを使うと、Pythonでコマンドラインツールを作成する際の引数解析を簡単に、かつ柔軟に行うことができます。