argparseをコマンドライン引数にオプション名をつけたり、必須項目やデフォルト値を扱うことが出来るようなので試してみます。
import argparse
# パーサーの作成
parser = argparse.ArgumentParser(description="必須引数とデフォルト引数の例")
# 必須引数の追加
parser.add_argument("input", help="入力ファイル (必須)")
parser.add_argument("output", help="出力ファイル (必須)")
# デフォルト引数の追加
parser.add_argument("-v", "--verbose", action="store_true", default=False, help="詳細モード (デフォルト: False)")
parser.add_argument("-n", "--number", type=int, default=10, help="数値 (デフォルト: 10)")
# 引数のパース
args = parser.parse_args()
# 引数の使用
print(f"入力ファイル: {args.input}")
print(f"出力ファイル: {args.output}")
print(f"詳細モード: {args.verbose}")
print(f"数値: {args.number}")
引数なしで実行する。
python argparse_test01.py
usage: argparse_test01.py [-h] [-v] [-n NUMBER] input output
argparse_test01.py: error: the following arguments are required: input, output
usageで使い方を表示しエラーで終了してくれています。
コード内では特段usageの表示もエラー処理も記述していないのでargparseが仕事をしてくれているのだと思われます。
必須項目を入力し実行する。
python argparse_test01.py input/path output/path
入力ファイル: input/path
出力ファイル: output/path
詳細モード: False
数値: 10
必須項目を入力したことで引数の内容を表示するコードが実行されています。
デフォルト値もセットされていることが確認できました。
コマンドライン引数の処理は意外と面倒だったりするのでargparseのようなライブラリがあると大変助かります。
コメント