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ライブラリを使用して、コマンドライン引数として日付を受け取る方法になります。この方法を利用すれば、日付を必要とするさまざまなスクリプトで使用することができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です