見出し画像

Python学習⑫~文字と日付の連結~

現在、書籍を参考にPythonで簡単な自動化プログラムを作る勉強中です。

参考書籍↓

書籍に出てきた自動化プログラムを実際に作り、noteにアウトプットしています。

前回、文字列の連結と関数を使って今日の日付の取得をするところまでやりました。

今回はこの取得した日付をyyyymmdeの文字列に変換し、文字列同士を連結してみます。


日付データのままでは連結できない。

現在取得した日付は以下のように年・月・日が「-(ハイフン)」で区切られています

この関数の戻り値は文字列ではなく「日付データ」です。

そのため、変換せずに文字列と連結しようとすると以下のようにエラーになります。

日付を文字列に変換する

日付を文字列に変換するにはdatetimeモジュールに含まれる「strftime」という関数を使います。

■書式
日付データ.strftime(形式)

これまで「.関数名」の前はモジュール名を記述していましたが、strftime関数では日付データを指定します。

引数には変換したい形式を指定します。

主な形式は以下の通りです。

%Y・・・4桁の西暦年(2023)
%m・・・2桁の月(4月→04)
%d・・・2桁の日(6日→06)

まずは日付の変換だけ試してみる

いきなり完成形を作る前に、まずはstrftime関数を使って、日付を文字列に変換してみます。

日付データの「datetime.date.today()」は変数dtに格納し、print関数で出力してみます。

今回はyyyymmdd形式で出力したいので形式は「%Y%m%d」とし、これらの記号は文字列として指定する必要がるので、「'」で囲みます。

dt = datetime.date.today()

print(dt.strftime('%Y%m%d'))

実行すると、以下の通り、当日の日付がyyyymmdeの形式で出力されました。

「保管¥¥backup20230816」と連結させる

取得したyyyymmdd形式の文字列の前に「保管¥¥backup20230816」を付けて出力してみます。

dt = datetime.date.today()

print('保管\\backup20230816' + dt.strftime('%Y%m%d'))

先ほどはエラーになりましたが、今回は上手く文字列同士で連結ができました。

おさらいすると、この出力された文字列は、「保管」という親フォルダ内の「backupyyyymmdd」というフォルダ名という意味になります。

この「backupyyyymmdd」が、今回作ろうとしている「バックアップフォルダ作成プログラム」の「バックアップ用フォルダ名」になります。

現在作ったプログラムは、まだ「バックアップ用フォルダ名」が暫定版で日付が固定されたままなので、次回は当日の日付のフォルダ名に書き換えていきます。


よろしければサポートお願いします!いただいたサポート費はクリエイターとしての活動費に使わせていただきます!