スポンサーリンク
Pythonでコマンドライン引数を取得する場合は、sysモジュールのargvを参照します。
インデックスの1つ目がPythonファイル名で、2つ目以降からコマンドライン引数を参照することができます。
また、argparseモジュールを使うと入力チェック処理を実装することもできます。
動作環境
Python 3.12.7
コマンドライン引数を渡す
引数を指定してPythonコードを実行する場合は、以下のように指定します。
構文
実行例
コマンドライン引数を受け取る
Pythonではargv[0]がargv-test.py
で、argv[1]以降がコマンドライン引数
となります。
引数のインデックス
python argv-test.py apple banana orange
を実行した場合、引数とインデックスの紐づきは以下の通りとなります。
インデックス | 内容 | 備考 |
---|---|---|
0 | argv-test.py | 実行ファイル名 |
1 | apple | 第一引数 |
2 | banana | 第二引数 |
3 | orange | 第三引数 |
コードでの引数受け取り
sys.argv[インデックス]
で値を受け取ります。
コードサンプル(argv-test.py)
実行結果例(argv-test.py)
python argv-test.py apple banana orange
の実行結果例です。
argparseを使う
argparseモジュールを使うと、入力チェックを含めた実装ができます。
実装例
以下サンプルのソースコードになります。
ファイル名:argv-test.py
argparse.ArgumentParser
のインスタンス引数は以下のように指定します。
引数 | 説明 | 設定例 |
---|---|---|
prog | プログラム名を指定する。 | サンプルプログラム |
usage | プログラムの使用方法を記載する。 | python argv-test.py <user_name> <password> <age> |
description | プログラムの説明文を記載する。 | 引数のチェックを行うプログラムです。 |
epilog | ヘルプの最後に表示する文字列。 | 以上 |
add_help | -h/–-helpオプションの追加 | True or False |
テストプログラムのヘルプ表示
-h
または--help
を指定することで、ヘルプを表示することができます。(add_helpがTrueの場合)
テストプログラム実行(正常系)
以下テストプログラムの実行例です。
実行結果(正常系)
テストプログラム実行(異常系①)
年齢(第三引数)
に文字列を指定した場合の挙動を確認しました。
実行結果(異常系①)
年齢に数値を指定していないため、エラーメッセージが表示されました。
テストプログラム実行(異常系②)
年齢(第三引数)
を指定しなかった場合の挙動を確認しました。
実行結果(異常系②)
年齢が必須である旨のエラーメッセージが表示されました。
まとめ
- Pythonでコマンドライン引数を扱うには、
sysモジュールのargv
を利用する。 - インデックス0は、実行ファイル名で
インデックス1以降がコマンドライン引数
となる。 - 入力チェックや引数の指定方法を実装する場合は、
argparse
モジュールを利用すると便利。
以上で本記事の解説を終わります。
よいITライフを!