pythonでfrom to形式の時間を分単位で展開する

pythonで時間展開してみる

こんなデータがあったとして、

from_time  :  2018/3/30 20:00:05
to_time : 2018/3/30 20:05:10

こんなふうに展開したい

2018/3/30 20:00:00
2018/3/30 20:01:00
2018/3/30 20:02:00
2018/3/30 20:03:00
2018/3/30 20:04:00
2018/3/30 20:05:00

のでやってみた。

使うライブラリはこれだけ

import datetime

まずは秒を切り捨てする関数を用意 切り捨てる単位は秒でハードコーディング(とてもよくない)

def minute_trunc(dt):
    return dt-datetime.timedelta(seconds=dt.second)

次に分を加算する関数を用意 なぜか加算する分は引数で可変にしておく

def minute_add(dt,x):
    return dt+datetime.timedelta(minutes=x)

これらを組み合わせてこんな感じ

def minutes_expand(from_datetime,to_datetime):
    result = []
    for x in range(0,int((minute_trunc(to_datetime)-minute_trunc(from_datetime)).seconds/60)+2):
        result.append(minute_add(minute_trunc(from_datetime),x))
    return result

あとは引数にdatetime形式のものを入れれば 時間を展開した結果をリスト形式で返してくれる。