【Python】フォルダやファイル名を一括置換するツールを作ってみた

プログラミング
広告
広告

皆さんこんにちは!

Windowsでフォルダやファイルを選択して名前を変更すると一括で変換することはできますが、
一括で部分置換はできないのが不便だなと感じました。

そこで、今回はtkinterを使って、特定のフォルダ内のフォルダやファイル名を一括で置換するツール作成しましたのでそのコードを紹介します。

また、コードを実際に動かしてみるとPythonの勉強になるので活用していただければと思います。

広告
広告

ツールの概要

このツールは、以下の機能を提供します。

  • 検索対象となるファイルとフォルダの名前から、指定した古いテキストを新しいテキストに置換
  • 置換後の名前でファイルとフォルダををリネーム

コード一覧

import os
import tkinter as tk
from tkinter import filedialog

def replace_filenames(folder_path, old_text, new_text):
    try:
        # 指定されたフォルダ内のファイル一覧を取得
        files = os.listdir(folder_path)
        for file in files:
            # ファイル名に古いテキストが含まれている場合、置換してリネームする
            if old_text in file:
                new_file = file.replace(old_text, new_text)
                os.rename(os.path.join(folder_path, file), os.path.join(folder_path, new_file))
        print("ファイル名の置換が完了しました。")
    except Exception as e:
        print("エラーが発生しました:", e)

def select_folder():
    folder_path = filedialog.askdirectory()
    folder_entry.delete(0, tk.END)
    folder_entry.insert(0, folder_path)

def replace_names():
    folder_path = folder_entry.get()
    old_text = old_entry.get()
    new_text = new_entry.get()
    replace_filenames(folder_path, old_text, new_text)

# GUIの作成
root = tk.Tk()
root.title("ファイル名置換ツール")

# フォルダ選択部分
folder_label = tk.Label(root, text="フォルダ:")
folder_label.grid(row=0, column=0, padx=5, pady=5)
folder_entry = tk.Entry(root, width=50)
folder_entry.grid(row=0, column=1, padx=5, pady=5)
folder_button = tk.Button(root, text="参照", command=select_folder)
folder_button.grid(row=0, column=2, padx=5, pady=5)

# 置換前テキスト入力部分
old_label = tk.Label(root, text="置換前のテキスト:")
old_label.grid(row=1, column=0, padx=5, pady=5)
old_entry = tk.Entry(root, width=50)
old_entry.grid(row=1, column=1, padx=5, pady=5)

# 置換後テキスト入力部分
new_label = tk.Label(root, text="置換後のテキスト:")
new_label.grid(row=2, column=0, padx=5, pady=5)
new_entry = tk.Entry(root, width=50)
new_entry.grid(row=2, column=1, padx=5, pady=5)

# ボタン
replace_button = tk.Button(root, text="ファイル名置換", command=replace_names)
replace_button.grid(row=3, column=1, padx=5, pady=5)

root.mainloop()

※コードの利用は注意してご使用ください。

使用例

今回以下のフォルダを例にツールを使用したいと思います。(フォルダ名は「test」です)

本ツールを実行すると、まず以下のような画面がでてきます。

以下のように「フォルダ」「置換前のテキスト」「置換後のテキスト」を入力し、
「ファイル名置換」ボタンを入力します。

指定したフォルダが以下のように置換されます。

最後に

本ツールは簡単なコードでできていますので、Pythonを始めたばかりの初心者さんに実際に動かして学習の参考になればと思っております。

今回作成したコードとexeは下記リンク先に保存しています。
ファイル名は「file_rename.py」です。
また、exeファイルも作成しているのでダウンロードしたい方は下記リンクから右にある「Releases」を選択し、表示された該当のexeファイルをダウンロードしてください。

GitHub - technyanko/python_tools
Contribute to technyanko/python_tools development by creating an account on GitHub.
人気ブログランキング

クリックするとブログランキングサイトに移動します。

にほんブログ村 IT技術ブログへ
インターネット・コンピュータランキング
広告
広告
プログラミング
広告
technyankoをフォローする
広告
プロフィール
technyanko

元情シス・SEです。
当ブログではPCに関して困ったことや役立つ情報を発信していきます。
たまにバッチスクリプトやPythonに関する記事も投稿します。

technyankoをフォローする
広告
タイトルとURLをコピーしました