はじめに
Pythonのコマンドラインインターフェース(CLI)は、ターミナルやコマンドプロンプトでコマンドを入力することでコンピュータプログラムと対話する方法です。これにより、ユーザーはプログラムを実行して引数を渡したり、プログラムからの出力をテキスト形式で受け取ったりできます。コマンドラインインターフェースは、タスクの自動化、スクリプトの実行、グラフィカルユーザーインターフェース(GUI)では困難または不可能な高度で複雑な操作を行うのに特に役立ちます。
このラボでは、argparseモジュールを使用してPythonプログラム用のコマンドラインインターフェースを作成する方法を学びます。簡単な例から始めて、徐々に複雑な例へと進んでいきます。このラボを終える頃には、argparseモジュールを使用してPythonプログラム用の強力なコマンドラインインターフェースを作成する方法を十分に理解できているはずです。
達成目標
argparseモジュール- Pythonスクリプト
Argparseモジュールのインポート
argparseモジュールを使用するための最初のステップは、それをインポートすることです。
コードを記述するためのPythonファイルを作成する必要があります。
touch my_program.py
Pythonスクリプトの先頭に以下のコード行を追加することで、インポートが可能です。
import argparse
パーサーオブジェクトの作成
argparseモジュールをインポートしたら、ArgumentParser()関数を呼び出してパーサーオブジェクトを作成できます。この関数はいくつかのオプション引数を取りますが、ここではプログラムの簡単な説明を指定するだけにします。
parser = argparse.ArgumentParser(description="A simple command line interface.")
引数の追加
パーサーオブジェクトができたので、引数を追加していきます。追加できる引数には、位置引数やオプション引数など、いくつかの種類があります。例えば、位置引数は次のように追加できます。
parser.add_argument("name", help="Your name")
また、オプション引数は次のように追加します。
parser.add_argument("-n", "--number", help="Number of times to repeat the message", type=int, default=1)
引数の解析
すべての引数を追加したら、パーサーオブジェクトのparse_args()関数を呼び出してそれらを解析できます。この関数は引数を取らず、すべての引数の値を含むオブジェクトを返します。
args = parser.parse_args()
引数の使用
引数を解析したので、プログラム内でそれらを使用できます。例えば、name引数は次のように使用します。
print("Hello, " + args.name)
オプション引数は次のように使用します。
print("Hello, " + args.name * args.number)
完全なコード
上記の手順をすべて含めた、このラボの完全なコードは以下の通りです。
import argparse
## パーサーオブジェクトの作成
parser = argparse.ArgumentParser(description="A simple command line interface.")
## 引数の追加
parser.add_argument("name", help="Your name")
parser.add_argument("-n", "--number", help="Number of times to repeat the message", type=int, default=1)
## 引数の解析
args = parser.parse_args()
## 引数の使用
print("Hello, " + args.name * args.number)
スクリプトを実行するには、コマンドラインでファイルがあるディレクトリに移動し、python my_program.pyの後にスクリプトに渡したい引数を入力します。
python my_program.py "John" --number 3
これにより、コンソールに「Hello, JohnJohnJohn」と出力されます。
まとめ
このラボでは、argparseモジュールを使用してPythonプログラム用のコマンドラインインターフェースを作成する方法を学びました。argparseモジュールのインポート、パーサーオブジェクトの作成、パーサーへの引数の追加、引数の解析、そしてプログラム内での引数の使用方法を確認しました。この知識があれば、Pythonプログラム用の強力なコマンドラインインターフェースを作成できるようになるはずです。



