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でコマンドラインツールを作成する際の引数解析を簡単に、かつ柔軟に行うことができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です