[Python] ファイル名に今日の日付を含める方法
Pythonでファイル名に今日の日付を含めるには、datetime
モジュールを使用します。
まず、datetime
モジュールをインポートし、datetime.now()
メソッドを使って現在の日付と時刻を取得します。
次に、strftime()
メソッドを用いて日付を文字列にフォーマットします。例えば、%Y-%m-%d
を指定すると「2023-10-05」のような形式になります。
この文字列をファイル名に組み込むことで、日付を含むファイル名を生成できます。
ファイル名に日付を含める方法
Pythonでファイル名に日付を含める方法は、さまざまなフォーマットを使用して実現できます。
ここでは、文字列として日付を結合する方法、f-stringを使ったフォーマット、そしてformatメソッド
を使ったフォーマットについて解説します。
文字列として日付を結合する
Pythonのdatetime
モジュールを使用して、現在の日付を取得し、それを文字列としてファイル名に結合する方法です。
import datetime
# 現在の日付を取得
today = datetime.date.today()
# 日付を文字列として結合
filename = "report_" + today.strftime("%Y%m%d") + ".txt"
print(filename) # 出力例: report_20240810.txt
この方法では、strftimeメソッド
を使用して日付を指定のフォーマット(例:%Y%m%d
)に変換し、文字列として結合しています。
f-stringを使ったフォーマット
Python 3.6以降で使用可能なf-stringを使うと、より簡潔に日付をファイル名に含めることができます。
import datetime
# 現在の日付を取得
today = datetime.date.today()
# f-stringを使ってフォーマット
filename = f"report_{today:%Y%m%d}.txt"
print(filename) # 出力例: report_20240810.txt
f-stringを使用することで、変数を直接文字列内に埋め込むことができ、コードがより読みやすくなります。
formatメソッドを使ったフォーマット
formatメソッド
を使用して、日付をファイル名に含める方法もあります。
import datetime
# 現在の日付を取得
today = datetime.date.today()
# formatメソッドを使ってフォーマット
filename = "report_{:%Y%m%d}.txt".format(today)
print(filename) # 出力例: report_20240810.txt
formatメソッド
を使用することで、文字列の中に変数を挿入し、指定したフォーマットで日付を表示することができます。
応用例
ファイル名に日付を含める基本的な方法を学んだところで、さらに応用的な例を見ていきましょう。
ここでは、日付と時刻を含める方法、特定のフォルダに保存する方法、そして日付をファイル名の先頭にする方法について解説します。
日付と時刻を含める
ファイル名に日付だけでなく、時刻も含めることで、より詳細なタイムスタンプを付けることができます。
import datetime
# 現在の日付と時刻を取得
now = datetime.datetime.now()
# 日付と時刻を含めたファイル名
filename = f"report_{now:%Y%m%d_%H%M%S}.txt"
print(filename) # 出力例: report_20240810_012613.txt
この例では、%H%M%S
を使用して時刻(時、分、秒)をフォーマットに追加しています。
これにより、ファイル名が一意になりやすくなります。
特定のフォルダに保存する
ファイルを特定のフォルダに保存する場合、フォルダパスをファイル名に追加します。
import datetime
import os
# 現在の日付を取得
today = datetime.date.today()
# フォルダパスとファイル名を結合
folder_path = "/path/to/directory"
filename = f"report_{today:%Y%m%d}.txt"
full_path = os.path.join(folder_path, filename)
print(full_path) # 出力例: /path/to/directory/report_20231005.txt
os.path.join
を使用することで、異なるOS間でのパスの違いを吸収し、正しいパスを生成することができます。
日付をファイル名の先頭にする
ファイル名の先頭に日付を配置することで、ファイルを日付順に並べやすくなります。
import datetime
# 現在の日付を取得
today = datetime.date.today()
# 日付をファイル名の先頭に
filename = f"{today:%Y%m%d}_report.txt"
print(filename) # 出力例: 20240810_report.txt
この方法では、日付をファイル名の先頭に配置することで、ファイルを日付順にソートした際に自然な順序で並ぶようになります。
まとめ
Pythonを使ってファイル名に日付を含める方法は、さまざまなフォーマットを活用することで簡単に実現できます。
この記事では、文字列結合、f-string、formatメソッド
を使った方法を紹介し、応用例として日付と時刻の追加や特定のフォルダへの保存方法も解説しました。
これらの知識を活用して、ファイル管理をより効率的に行いましょう。