Skip to content

Instantly share code, notes, and snippets.

Created Jan 31, 2022
What would you like to do?
# python .\ -s 2022/01 -e 2022/01 -o -> 2022年1月のダイジェストを作る。
from datetime import datetime
from datetime import timedelta
from argparse import ArgumentParser
import calendar
import sys
p = ArgumentParser()
p.add_argument("-s", "--start_date", type=lambda s: datetime.strptime(s, "%Y/%m"), required=True, help="開始月。yyyy/mm形式の年月")
p.add_argument("-e", "--end_date", type=lambda s: datetime.strptime(s, "%Y/%m"), required=True, help="終了月。yyyy/mm形式の年月")
p.add_argument("-o", "--output", type=str, help="出力先ファイル名。")
args = p.parse_args()
args.start_date -= timedelta(days=1)
args.end_date = args.end_date.replace(day=calendar.monthrange(args.end_date.year, args.end_date.month)[-1])
ignorewords = ["今日やった", "明日やる", "就寝前", "文章", "朝の計画", "作業内容"]
day = args.start_date
if args.output:
out = open(args.output, mode="w", encoding="utf-8")
out = sys.stdout
while day < args.end_date:
day += timedelta(days=1)
if == 1:
print (f"# ----{datetime.strftime(day, '%Y/%m')}----", file=out)
fn = f"{datetime.strftime(day, '%Y/%Y-%m-%d')}.md"
with open(fn, mode="r", encoding="utf-8") as f:
while line := f.readline():
if line.startswith("#") and list(filter(lambda s: s in line, ignorewords)) == []:
print("* [{}]({})".format(line.strip(' #\n'), fn), file=out)
if args.output:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment