【Python】ファイルを一括で日付リネーム!面倒くさがり必見スクリプト

はじめに

「このフォルダ、ファイル名バラバラで見づらいなぁ……」 「でも、ひとつずつ名前変えるのめんどくさっ!」

…そう思ったことありませんか?
はい、僕もその一人です(笑)

手間は最小限に、だけどスッキリ整理したい!
そんなズボラな自分のために作ったのが「ファイル名を作成日で一括リネームするPythonスクリプト」です。

この記事では、そんな“面倒くさがり向け”のちょっと便利な自動整理スクリプトを紹介します。


やりたいこと

フォルダを選ぶだけで中のファイル名を一括で変更したい
変更後のファイル名は「作成日(例:20250112)」に統一したい
拡張子は元のままにしておきたい(.jpg や .txt など)

準備するもの

ライブラリ

  • os(標準)

  • tkinter(標準)

  • datetime(標準)

  • shutil(標準)

  • pathlib(標準)

インポート手順

特別なインストールは不要!Pythonをインストールしていればすぐ使えます。

python
import os
import tkinter as tk
from tkinter import filedialog
from datetime import datetime
from pathlib import Path

このライブラリの説明

ライブラリ 役割
os ファイル操作全般
tkinter フォルダ選択のGUI
datetime 作成日の整形
pathlib パス操作のシンプル化

ディレクトリ構成

作業用フォルダの中にリネーム対象のファイルがあるだけでOKです。

作業フォルダ/
├─ メモ.txt
├─ メモ(1).txt
└─ メモ(2).txt

コードスクリプト

コードスクリプトの概要

指定したフォルダ内のファイルを「作成日.拡張子」という形で一括リネームするスクリプトです。

スクリプト全文(コピペOK)

python
import os
import tkinter as tk
from tkinter import filedialog
from datetime import datetime
from pathlib import Path

# フォルダ選択ダイアログを表示
root = tk.Tk()
root.withdraw()
folder = filedialog.askdirectory(title="フォルダを選択してください")

# フォルダが選択されたら処理を開始
if folder:
    for file in os.listdir(folder):
        path = Path(folder) / file
        if path.is_file():
            # 作成日を取得し、YYYYMMDD形式に変換
            timestamp = path.stat().st_ctime
            created = datetime.fromtimestamp(timestamp).strftime('%Y%m%d')
            
            # 拡張子を保持したままリネーム
            new_name = f"{created}{path.suffix}"
            new_path = path.with_name(new_name)
            
            # 同名ファイルがない場合のみリネーム
            if not new_path.exists():
                path.rename(new_path)
                print(f"リネーム: {file} → {new_name}")
            else:
                print(f"スキップ(同名ファイルあり): {file}")
else:
    print("フォルダが選択されませんでした。")

実行結果

実行前

以下作業フォルダ:

makefile
・IMG_001.jpg(作成日: 2025年1月12日)
・note.txt(作成日: 2024年12月25日)
実行後
スッキリ整理されて気持ちいいですね!

コード解説

  • tkinter でフォルダをGUIで選択

  • path.stat().st_ctime でファイルの作成日時を取得

  • datetime.fromtimestamp(...).strftime('%Y%m%d')20250112 の形式に

  • path.rename() でリネーム処理


注意点

  • 同じ作成日のファイルが複数あると上書き防止でスキップされます
    (必要に応じてファイル名に連番をつける処理を追加することも可能)

  • Windows/Macで「作成日時」の扱いが違う場合があります(Macは「変更日時」になることがある)

  • サブフォルダは処理しません


まとめ

  • 面倒くさいファイル整理が1発でできる!

  • 日付で並ぶから後から探しやすい!

  • Python初心者でも使いやすいコード

私の場合、週に1回くらい「ファイル整理タイム」を作って、このスクリプトをポチッと実行しています。
たった数秒でごちゃついたフォルダが整うと、ちょっと気分もスッキリしますよ。

ちょっとした手間をPythonに任せて、スッキリしたデスクトップ生活を始めましょう!

コメント

タイトルとURLをコピーしました