Pythonのargparseライブラリを使用して、コマンドライン引数として日付を受け取る方法について説明します。
日付型の引数を受け取る
argparseライブラリを使用して、コマンドライン引数として日付を受け取るための基本的なコードは以下の通りです。
import argparse
import datetime
# str -> date 型変換関数
def date_type(date_str):
return datetime.date.fromisoformat(date_str)
if __name__ == '__main__':
# ArgumentParserの取得
arg_parser = argparse.ArgumentParser()
# 日付指定オプションの定義
arg_parser.add_argument("-d", "--date", help="Date must be in ISO format. For example: 2020-01-01.", type=date_type)
# オプション引数の取得
args = arg_parser.parse_args()
date = args.date
print(date.year, date.month, date.day)
このコードでは、-d
または--date
というオプション引数を定義しています。この引数の値はISO形式の日付である必要があります(例:2020-01-01)。この値はdate_type
関数を通じてdatetime.date
型に変換されます。
エラーメッセージのカスタマイズ
不正な形式の日付が引数として渡された場合、カスタムエラーメッセージを出力することも可能です。
def date_type(date_str):
try:
return datetime.date.fromisoformat(date_str)
except ValueError as e:
raise argparse.ArgumentTypeError(str(e) + " Date must be in ISO format. ex. 2020-01-01")
このコードでは、date_type
関数内で例外を捕捉し、その例外メッセージと共にカスタムエラーメッセージを出力しています。
以上がPythonのargparseライブラリを使用して、コマンドライン引数として日付を受け取る方法になります。この方法を利用すれば、日付を必要とするさまざまなスクリプトで使用することができます。