Python備忘録(1)

久々にPythonを利用したら日付操作関係ほとんど覚えてなくてやりたいことができずショックだったので再勉強もかねて備忘録。
それ以外にもファイル操作やいろいろ忘れすぎているのでそのうちそれらも備忘録に残します。今回はとりあえず日付とコマンドライン引数関係とrange。

  • 備忘録1

コマンドライン引数で開始、終了日を受け取って終了日から開始日までカウントダウン

# -*- coding: utf-8 -*-

import sys

args = sys.argv

argc = len(args)

if argc != 3:
    print("Usage: >python test.py start_date end_date")
    print("        The formats of both star and end date are YYYYMMDD")
    exit(1)

start_date = args[1]
end_date = args[2]

days = (int(end_date, 10) - int(start_date, 10)) + 1
print("How many days:", days)
for i in range(int(end_date, 10), int(start_date, 10) - 1, -1):
    print(i)

実行結果


test.py 20170301 20170310
('How many days:', 10)
20170310
20170309
20170308
20170307
20170306
20170305
20170304
20170303
20170302
20170301

  • 備忘録2

日付関連の操作もろもろ

# -*- coding: utf-8 -*-

from datetime import datetime, date, time, timedelta

strdate = "20170321"
strtime = "03:10:30"

aday = datetime.strptime(strdate + " " + strtime, '%Y%m%d %H:%M:%S')
print(aday)

#一日後
next_day = aday + timedelta(days=1)
print(next_day)

#一分後
before_one_minute = aday + timedelta(minutes = 1)
print(before_one_minute)

#時刻だけ抽出
only_time = before_one_minute.strftime('%H:%M:%S')
print(only_time)

#文字列型で2日先
str_next_days = "2017-03-22 " + only_time
print(str_next_days)

実行結果


2017-03-21 03:10:30
2017-03-22 03:10:30
2017-03-21 03:11:30
03:11:30
2017-03-22 03:11:30