
【Python】コマンドラインツールを作るなら「sys.argv」より「argparse」。自動でヘルプまで作れる標準ライブラリ
Pythonでスクリプトを作って、ターミナルから python script.py data.txt のように引数を渡して実行することはよくあります。
この時、簡易的に sys.argv を使うこともできますが、引数が増えてきたり、オプション指定(-h や --verbose)に対応しようとすると、自力で解析処理を書くのは非常に大変です。
そんな時に使うべきなのが、Pythonの標準ライブラリ**「argparse」**です。 これを使えば、本格的なコマンドラインツールに必要な機能のほとんどを、驚くほど簡単に実装できます。
sys.argv とは何が違うのか?
argparseを使うと、sys.argvでは自力で実装しなければならなかった以下の機能が、すべて自動で提供されます。
ヘルプメッセージの自動生成 -h や --help を付けて実行するだけで、使い方の説明(Usage)をきれいに表示してくれます。
型チェックと変換 「この引数は整数(int)でなければならない」と定義しておけば、数字以外の文字が渡された時に自動でエラーにしてくれます。自分で int() 変換や try-except を書く必要はありません。
オプション引数の処理 --output file.txt や -o file.txt のような、任意のオプション指定を簡単に定義できます。
選択肢の制限 「mode は A か B のどちらかしか受け付けない」といった制約(choices)も設定可能です。
たった3ステップで実装完了
使い方の流れは非常にシンプルです。
パーサーを作る: argparse.ArgumentParser() で土台を作ります。
引数を定義する: add_argument() で、「どんな引数が必要か」を登録します。
解析する: parse_args() を呼ぶだけで、解析済みのデータが手に入ります。
これだけで、ユーザーフレンドリーなインターフェースを持つツールが完成します。
続きはブログで:計算ツールの作成と実行結果
この記事では、argparseのメリットと基本的な仕組みについてご紹介しました。
「では、実際に**位置引数(必須)とオプション引数(任意)**を定義するコードはどう書く?」 「-h オプションを付けた時に、実際にどのようなヘルプ画面が表示されるのか見たい」 「choicesオプションを使って、入力値を制限する具体的な記述方法は?」
と思われた方もいらっしゃるかと思います。
私の運営する技術ブログでは、この記事の続きとして、簡易計算ツール(電卓)を題材にした具体的な実装コードと、ヘルプ表示やエラー時の挙動まで、実行結果を交えて詳しく解説しています。
自分だけの便利なツールを作るための必須知識です。詳細は、ぜひ以下のリンクからご覧ください。
▼ブログ記事はこちら Pythonで高機能なコマンドラインツールを作る:argparseモジュールの使い方