Pythonプログラミングでは、コマンドライン引数を使ってプログラムの動作を柔軟に変更することができます。
この記事では、Pythonでコマンドライン引数を簡単に扱うためのargparseライブラリについて解説します。
argparseとは
argparseは、Pythonの標準ライブラリの一つで、コマンドライン引数を簡単に扱うことができるモジュールです。
argparseを使うことで、プログラムの実行時にユーザーが指定したオプションや引数を簡単に取得・解析することができます。
コマンドライン引数の利点
コマンドライン引数を使うことで、以下のような利点があります。
プログラムの挙動を柔軟に変更できる
コマンドライン引数を使うことで、プログラムの挙動を実行時に簡単に変更することができます。
例えば、ファイル名や処理の対象となるデータを引数で指定することで、プログラムを修正することなく異なる入力に対応できます。
設定ファイルや環境変数と比べて直感的
設定ファイルや環境変数を使ってプログラムの挙動を変更することもできますが、コマンドライン引数を使うことで、プログラムの実行時に直接指定できるため、より直感的に操作できます。
プログラムの再利用性が向上
コマンドライン引数を使ってプログラムを設計することで、他のプログラムやスクリプトからも簡単に呼び出すことができ、再利用性が向上します。
argparseの特徴
argparseは、以下のような特徴があります。
引数の型チェック
argparseを使うことで、引数の型を指定することができます。
これにより、引数が指定された型に合わない場合にエラーを出力し、プログラムを終了させることができます。
ヘルプメッセージの自動生成
argparseは、指定された引数やオプションに応じてヘルプメッセージを自動的に生成します。
これにより、ユーザーがプログラムの使い方を簡単に理解することができます。
サブコマンドのサポート
argparseは、サブコマンドをサポートしています。
これにより、複数の機能を持つプログラムを簡単に実装することができます。
エラーメッセージの自動生成
引数やオプションが不正な場合、argparseはエラーメッセージを自動的に生成し、プログラムを終了させます。
これにより、ユーザーが引数の指定方法をすぐに理解できるようになります。
argparseのインストール方法
argparseはPythonの標準ライブラリに含まれているため、通常はインストールする必要はありません。
しかし、何らかの理由でインストールが必要になった場合や、最新のバージョンを利用したい場合は、以下の方法でインストールすることができます。
Python標準ライブラリの利用
Pythonの標準ライブラリにargparseが含まれているため、特別なインストール手順は必要ありません。
Pythonをインストールするだけで、argparseを利用することができます。
Pythonのインストール方法については、Python公式サイトを参照してください。
インストールが必要な場合
もし、何らかの理由でargparseがインストールされていない場合や、最新のバージョンを利用したい場合は、以下のコマンドを実行してargparseをインストールしてください。
pip install argparse
このコマンドを実行することで、argparseがインストールされ、Pythonプログラムで利用することができるようになります。
以上で、argparseのインストール方法について説明しました。
次の章では、argparseを使ったコマンドライン引数の取得方法について解説します。
argparseの基本的な使い方
argparseを使ってコマンドライン引数を扱う方法を学ぶために、基本的な使い方を解説します。
以下の順序で説明を進めます。
- ArgumentParserオブジェクトの作成
- 引数の追加
- 引数の解析
- 引数の取得
ArgumentParserオブジェクトの作成
まずは、argparse.ArgumentParserクラス
のインスタンスを作成します。
これが、コマンドライン引数を解析するための基本的なオブジェクトです。
import argparse
parser = argparse.ArgumentParser(description="このプログラムの説明を記載します。")
引数の追加
次に、コマンドライン引数を追加します。
引数は、位置引数とオプション引数の2種類があります。
位置引数
位置引数は、コマンドライン上での引数の位置によって識別される引数です。
以下のように add_argument()
メソッドを使って追加します。
parser.add_argument("arg1", help="arg1の説明を記載します。")
オプション引数
オプション引数は、引数名が明示的に指定される引数で、-
や--
で始まる引数名を持ちます。
以下のように add_argument()
メソッドを使って追加します。
parser.add_argument("-a", "--arg2", help="arg2の説明を記載します。")
追加された引数の説明は、プログラムを実行するときに-h
をつけると表示されます。
引数の解析
追加した引数を解析するには、 parse_args()
メソッドを呼び出します。
このメソッドは、コマンドライン引数を解析し、結果をNamespaceオブジェクトとして返します。
args = parser.parse_args()
引数の取得
最後に、解析した引数を取得します。
Namespaceオブジェクトの属性として、追加した引数が格納されています。
arg1_value = args.arg1
arg2_value = args.arg2
これで、argparseを使ってコマンドライン引数を取得する方法がわかりました。
以下に、これまでの説明をまとめたサンプルコードを示します。
import argparse
# ArgumentParserオブジェクトの作成
parser = argparse.ArgumentParser(description="このプログラムの説明を記載します。")
# 引数の追加
parser.add_argument("arg1", help="arg1の説明を記載します。")
parser.add_argument("-a", "--arg2", help="arg2の説明を記載します。")
# 引数の解析
args = parser.parse_args()
# 引数の取得
arg1_value = args.arg1
arg2_value = args.arg2
# 実行結果を表示
print(f"arg1: {arg1_value}")
print(f"arg2: {arg2_value}")
このサンプルコードを-h
オプション付きで実行するとコマンドライン引数の説明を表示。
それぞれのコマンドライン引数を指定して実行すると、コマンドライン引数を解析し、結果を表示します。
$ python sample.py -h
usage: sample.py [-h] [-a ARG2] arg1
このプログラムの説明を記載します。
positional arguments:
arg1 arg1の説明を記載します。
options:
-h, --help show this help message and exit
-a ARG2, --arg2 ARG2 arg2の説明を記載します。
$ python sample.py -arg1 hello -a sample
arg1: hello
arg2: sample
これで、argparseを使ってコマンドライン引数を扱う方法がわかりました。