連日+曜日を作成する


以下のような記述を作成したかったので、Pythonでやってみました。

2023-07-18 Tue
2023-07-19 Wed

コード

import datetime


mylist = [f"2023-08-1{i}" for i in range(1, 6)]


for i in mylist:
    hoge = i
    dte = datetime.datetime.strptime(hoge, '%Y-%m-%d')
    dte1 = dte.strftime('%a')
    dte2 = str(dte)
    new_date = datetime.datetime.strptime(dte2, '%Y-%m-%d %H:%M:%S').strftime('%Y/%m/%d')
    print(new_date, dte1)

2023/08/11 Fri
2023/08/12 Sat
2023/08/13 Sun
2023/08/14 Mon
2023/08/15 Tue

日付を作って、リストに入れる

日付をforループで作成します。mylistに格納します。参考にしたページも載せておきます。

mylist = [f"2023-08-1{i}" for i in range(1, 6)]

www.javadrive.jp

文字列を日付型に変換する

変数hogeにforループの展開を入れます。次に変数dteに文字列を日付型に変換して代入する。

for i in mylist:
    hoge = i
    dte = datetime.datetime.strptime(hoge, '%Y-%m-%d')

pg-chain.com

日付型から曜日を取得+日付型を文字列にする

dte1に関数(?)strftimeで曜日を代入します。

dte = datetime.datetime.strptime(hoge, '%Y-%m-%d')
dte1 = dte.strftime('%a')
dte2 = str(dte)
new_date = datetime.datetime.strptime(dte2, '%Y-%m-%d %H:%M:%S').strftime('%Y/%m/%d')
print(new_date, dte1)

qiita.com

時間が邪魔なときの対処法

https://qiita.com/daijiro_ma/items/8a62fbb0741e5bad8568

TypeError: strptime() argument 1 must be str, not datetime.datetimeの対処法

https://qiita.com/S_eki/items/574402720355fc979622

ここでdte2に日付型から文字列型にします。TypeErrorが出たので、ググってこれをやります。

最後に出力

最初の行で2023-07-18 00:00:00を2023/07/18に形式変更します。そして出力。

new_date = datetime.datetime.strptime(dte2, '%Y-%m-%d %H:%M:%S').strftime('%Y/%m/%d')
print(new_date, dte1)

これを作成するのに2時間くらいかかっていますが、身になったので良しとします。