非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Python】複数のファイル名から特定キーワードを一括削除する小技

   

PC内のファイル名が「TEST_企画書」「提案書TEST_最終」のようになっていて、「TEST」という文字列を自動で削除する小技です。

import os # オペレーティングシステムと対話するためのモジュールをインポートします

def remove_test_from_filenames(folder_path):
    """
    指定されたフォルダ内のファイル名から「TEST」という文字列を削除します。

    Args:
        folder_path (str): 処理対象のフォルダのパス。
    """
    try:
        # 指定されたフォルダ内のすべてのファイルとフォルダの名前を取得します
        for filename in os.listdir(folder_path):
            # 現在のファイル名に「TEST」という文字列が含まれているかを確認します(大文字小文字を区別します)
            if "TEST" in filename:
                # ファイル名から「TEST」を空文字列に置き換え、新しいファイル名を作成します
                new_filename = filename.replace("TEST", "")
                
                # 元のファイルのフルパスと、新しいファイル名のフルパスを作成します
                # os.path.joinを使うことで、OSに依存しないパスを生成できます
                old_file_path = os.path.join(folder_path, filename)
                new_file_path = os.path.join(folder_path, new_filename)
                
                # 新しいファイル名が既にフォルダ内に存在するかどうかを確認します
                # これにより、既存のファイルを上書きしてしまう事故を防ぎます
                if os.path.exists(new_file_path):
                    print(f"Skipped (already exists): {new_filename}") # 既に存在する場合はスキップしたことを表示
                    continue # 次のファイルへ処理を移します
                
                # ファイル名を変更(リネーム)します
                # old_file_pathからnew_file_pathへ変更されます
                os.rename(old_file_path, new_file_path)
                print(f"Renamed: {filename} -> {new_filename}") # 変更が成功したことを表示
    except Exception as e:
        # 処理中に何らかのエラーが発生した場合、そのエラーメッセージを表示します
        print(f"An error occurred: {e}")

# --- スクリプトの実行部分 ---

# 使用例:ここに実際に処理したいフォルダのパスを指定してください。
# Windowsの場合、バックスラッシュの前に 'r' を付けてロー文字列にするか、バックスラッシュを二重にしてください。
# 例: r"C:\Users\YourUser\Documents\MyFiles" または "C:\\Users\\YourUser\\Documents\\MyFiles"
folder_path = r"C:\path\to\your\folder"  # 例: r"C:\Users\User\Desktop\整理したいフォルダ"

# 関数を呼び出してファイル名変更処理を実行します
remove_test_from_filenames(folder_path)
 

 

スポンサーリンク

 - Python