Pythonのargparseモジュールを使用して、一般的なCLIにおける--help
や--version
のような動きをするコマンドを実装する方法を紹介します。
まずは、argparse.ArgumentParserのインスタンスを作成します。そして、add_argumentメソッドを使用して引数を追加します。このとき、actionパラメータには自作したActionクラスを指定します。
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
オプションが与えられたときに、show_system_version
関数を実行して処理を終了します。
このように、argparseモジュールを使用すれば、独自のヘルプコマンドを簡単に実装することができます。ぜひ試してみてください。