0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Posted at

概要

データ分析において、データ抽出に年月のみ指定し、その年月の月初から月末までを取得する、、、、そんな理由でサクッと作ってみました。の第三弾!
Azureの請求データを CostManagement から取得するときに年月のみを指定し、その年月のデータを抽出することを想定しています。

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

実行環境

macOS Monterey 12.3.1
python 3.8.12

実行プログラム

BillingMonth.py
from datetime import *
from dateutil.relativedelta import relativedelta
import argparse
import sys

# パラメータ年月から月初-月末の取得
def month_period(bm):
        
    try :
        # 月初
        bm = bm + '-01'
        fm_datetime = datetime.strptime(bm, '%Y-%m-%d')
        bm_fm = fm_datetime.strftime('%Y-%m-%d')
        
        # 月末 (来月の1日に合わせて1日分戻る)
        to_datetime = fm_datetime + relativedelta(months=+1,day=1,days=-1)
        bm_to = to_datetime.strftime('%Y-%m-%d')
        
        # print(fm_datetime)
        # print(bm_fm)
        # print(to_datetime)
        # print(bm_to)
        return bm_fm, bm_to
    except ValueError as e :
        print("ValueError = ", e)
        sys.exit()


# 画面表示
def period_to_display(bm_fm, bm_to):
    print('抽出期間 : ', bm_fm + '' + bm_to, '\n')


if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='パラメータに年月を渡し、月初から月末までの年月日を返す')
    parser.add_argument('-b', '--bm', type=str, required=True, help='取得する年月(yyyy-mm)')
    args = parser.parse_args()

    bm_fm, bm_to = month_period(args.bm)
    period_to_display(bm_fm, bm_to)

プログラムのHELP表示

$ python BillingMonth.py -h       
usage: BillingMonth.py [-h] -b BM

パラメータに年月を渡し、月初から月末までの年月日を返す

optional arguments:
  -h, --help      show this help message and exit
  -b BM, --bm BM  取得する年月(yyyy-mm)

プログラムの実行

## うるう年
$ python BillingMonth.py -b 2020-02
抽出期間 :  2020-02-01 〜 2020-02-29 

## ふつうの年
$ python BillingMonth.py -b 2022-02
抽出期間 :  2022-02-01 〜 2022-02-28 

$ python BillingMonth.py -b 2022-4 
抽出期間 :  2022-04-01 〜 2022-04-30 

まとめ

これで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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?