LoginSignup
74
80

More than 1 year has passed since last update.

Pythonでほぼ日手帳形式のmarkdownメモ帳を作ろう(1年分)

Last updated at Posted at 2023-02-04

概要

私は1年に1度markdown形式のメモ用ファイルをたくさん作っている。これを日常のあらゆるメモとして使用している。自動生成するためのコードを書き直したので忘れないように記録しておく。

作るもの

以下のような構成のmarkdownファイルを作る。

.
└── 2023
    ├── 1
    │   ├ 2-8.md
    │   ├ 9-15.md
    │   ├ 16-22.md
    │   ├ 23-29.md
    │   └ 30-5.md
    └── 2
    │   ├ 6-12.md
    │   ├ ...
    │   ... 
    │    
    └── 3
    └── 4
    └── ...

生成時点でファイルごとに以下のような内容を書いておく。

# 1/2 (月)

# 1/3 (火)

# 1/4 (水)

# 1/5 (木)

# 1/6 (金)

# 1/7 (土)

# 1/8 (日)

# メモ



それぞれの日付が書かれた段落内には、「その日の予定」「その日のメモ」「日々の振り返り」等好きなことを書く。メモを書く場所に迷ったらその日付にひとまず記載しておく。だいたいほぼ日手帳として使う。

使用例
# 2/2 (木)

* 19:00より○○と会う
* 燃えるゴミ出すこと

## タスク1

#### サブタスク
* ...
* ...

## 読書記録

...

1週間ごとに1ファイルとしている。スケールを大きくしすぎると(1年で1ファイルとか)だんだん散らかってくるし、あまりスケールが小さくても(1日ごとに1ファイルとか)不便なので1週間区切りとしている。

Pythonで作ろう

使うもの

open

ファイル書くやつ。withを使うとcloseの手間が省けて便利。

with open("dir/filename", "w", encoding="utf-8") as f:
    f.write("hello, world!\n")

日本語を書く時はencoding="utf-8"を指定しておこう

osモジュール

ディレクトリを作る時に使うやつ。

import os

dir = "src/1/2/"
os.makedirs(dir, exist_ok=True)

os.makedirsなら深い階層まで一気に生成できる。また、exist_ok=Trueオプションを付けることですでにそのディレクトリが存在してもエラーを吐かなくなる。

datetime.dateモジュール

日付操作に使う。

import datetime

date_newyear = datetime.date.fromisoformat('2023-01-01')
date_today = datetime.date.today()
date_tommorow = date_today + datetime.timedelta(days=1)

コード全文

import os
import datetime

date = datetime.date.fromisoformat('2023-01-02')

while date.year == 2023:
    dir = f"{date.year}/{date.month}"
    os.makedirs(dir, exist_ok=True)
    date_weekend = date + datetime.timedelta(days=6)
    weekday = ["", "", "", "", "", "", ""]
    with open(f"{dir}/{date.day}-{date_weekend.day}.md", "w", encoding="utf-8") as f:
        for i in range(7):
            f.write(f"# {date.month}/{date.day} ({weekday[i]})\n\n")
            date += datetime.timedelta(days=1)
        f.write("# メモ\n\n")

以上です。

74
80
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
74
80