LoginSignup
0
0

More than 1 year has passed since last update.

Pythonに パラメータとして日付を渡してみました - 第二弾

Last updated at Posted at 2022-10-17

概要

データ分析において、データ抽出に日付を指定したくなります、、、、そんな理由でサクッと作ってみました。の第二弾! Azureの請求データを CostManagement から取得するときに年月日を範囲として指定するときの利用を想定しています。

ちなみに、第一弾の記事はこちらになります

実行環境

macOS Monterey 12.3.1
python 3.8.12

実行プログラム

QueryTimePeriod.py
from datetime import *
import argparse

# パラメータ日付の確認
def check_time_period(fm_tp, to_tp):
    try :
        fm_datetime = datetime.strptime(fm_tp, '%Y-%m-%d')
        to_datetime = datetime.strptime(to_tp, '%Y-%m-%d')

        if to_datetime < fm_datetime :
            print("Error ---> 開始日 ≦ 終了日 ")
            return False
        else :
            return True
    except ValueError as e :
        print("ValueError = ", e)
        return False

# 画面表示
def period_to_display(fm_tp, to_tp):
    print(fm_tp)
    print(to_tp)
    print("")

# メイン
if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='パラメータに年月日を渡す')
    parser.add_argument('-f', '--fm', type=str, required=True, help='データを取得する開始日(yyyy-mm-dd)')
    parser.add_argument('-t', '--to', type=str, required=True, help='データを取得する終了日(yyyy-mm-dd)')
    args = parser.parse_args()

    if check_time_period(args.fm, args.to) == True:
        print("OK", "\n")
        period_to_display(args.fm, args.to)
    else :
        print("NG", "\n")

プログラムのHELP表示

$ python QueryTimePeriod.py -h
usage: QueryTimePeriod.py [-h] -f FM -t TO

パラメータに年月日を渡す

optional arguments:
  -h, --help      show this help message and exit
  -f FM, --fm FM  データを取得する開始日(yyyy-mm-dd)
  -t TO, --to TO  データを取得する終了日(yyyy-mm-dd)

プログラムの実行(正常)

## From日付とTo日付を同日定義
$ python QueryTimePeriod.py -f 2022-09-25 -t 2022-09-25
OK 

2022-09-25
2022-09-25


## From日付とTo日付に異なる日付を定義
$ python QueryTimePeriod.py -f 2022-09-25 -t 2022-09-30
OK 

2022-09-25
2022-09-30

プログラムの実行(異常)

## From日付のみ(To日付のみ)指定
$ python QueryTimePeriod.py -f 2022-09-25              
usage: QueryTimePeriod.py [-h] -f FM -t TO
QueryTimePeriod.py: error: the following arguments are required: -t/--to


## 間違った日付フォーマットで定義
$ python QueryTimePeriod.py -f 2022-09-25 -t 2022/09/30
ValueError =  time data '2022/09/30' does not match format '%Y-%m-%d'
NG 


## 存在しない日付を定義
$ python QueryTimePeriod.py -f 2022-09-25 -t 2022-09-31
ValueError =  day is out of range for month
NG 


## From日付よりTo日付が過去として定義
$ python QueryTimePeriod.py -f 2022-09-25 -t 2022-09-14
Error ---> 開始日 ≦ 終了日 
NG 

まとめ

これでAzureの請求データを期間指定で取得するための準備は完了です。また、ここの説明 から 時分秒の指定 がなくとも 日付のみ でその日の 23:59:59 までのデータをすべて取得できるようです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0