メインコンテンツへスキップ
見出し画像

【Python】コマンドラインツールを作るなら「sys.argv」より「argparse」。自動でヘルプまで作れる標準ライブラリ

    Pythonでスクリプトを作って、ターミナルから python script.py data.txt のように引数を渡して実行することはよくあります。

    この時、簡易的に sys.argv を使うこともできますが、引数が増えてきたり、オプション指定(-h や --verbose)に対応しようとすると、自力で解析処理を書くのは非常に大変です。

    そんな時に使うべきなのが、Pythonの標準ライブラリ**「argparse」**です。 これを使えば、本格的なコマンドラインツールに必要な機能のほとんどを、驚くほど簡単に実装できます。


    sys.argv とは何が違うのか?


    argparseを使うと、sys.argvでは自力で実装しなければならなかった以下の機能が、すべて自動で提供されます。

    1. ヘルプメッセージの自動生成 -h や --help を付けて実行するだけで、使い方の説明(Usage)をきれいに表示してくれます。

    2. 型チェックと変換 「この引数は整数(int)でなければならない」と定義しておけば、数字以外の文字が渡された時に自動でエラーにしてくれます。自分で int() 変換や try-except を書く必要はありません。

    3. オプション引数の処理 --output file.txt や -o file.txt のような、任意のオプション指定を簡単に定義できます。

    4. 選択肢の制限 「mode は A か B のどちらかしか受け付けない」といった制約(choices)も設定可能です。


    たった3ステップで実装完了


    使い方の流れは非常にシンプルです。

    1. パーサーを作る: argparse.ArgumentParser() で土台を作ります。

    2. 引数を定義する: add_argument() で、「どんな引数が必要か」を登録します。

    3. 解析する: parse_args() を呼ぶだけで、解析済みのデータが手に入ります。

    これだけで、ユーザーフレンドリーなインターフェースを持つツールが完成します。


    続きはブログで:計算ツールの作成と実行結果


    この記事では、argparseのメリットと基本的な仕組みについてご紹介しました。

    「では、実際に**位置引数(必須)とオプション引数(任意)**を定義するコードはどう書く?」 「-h オプションを付けた時に、実際にどのようなヘルプ画面が表示されるのか見たい」 「choicesオプションを使って、入力値を制限する具体的な記述方法は?」

    と思われた方もいらっしゃるかと思います。

    私の運営する技術ブログでは、この記事の続きとして、簡易計算ツール(電卓)を題材にした具体的な実装コードと、ヘルプ表示やエラー時の挙動まで、実行結果を交えて詳しく解説しています。

    自分だけの便利なツールを作るための必須知識です。詳細は、ぜひ以下のリンクからご覧ください。

    ▼ブログ記事はこちら Pythonで高機能なコマンドラインツールを作る:argparseモジュールの使い方


     
     
    プログラムを書いています。メイン言語はVBA、C++、C#、Python。Webサイトも運営しているので、noteのプロフィール欄URLから私のサイトにぜひお越しください! https://morinokabu.com/

    あなたへのおすすめ