見出し画像

Python、禁止用語アンダーバーに「一括変換」試してみた。

import os
import re

def rename_files(path):
    for root, dirs, files in os.walk(path):
        for file in files:
            old_path = os.path.join(root, file)
            new_name = sanitize_filename(file)
            new_path = os.path.join(root, new_name)
            
            if old_path != new_path:
                os.rename(old_path, new_path)
                print(f'Renamed: {old_path} -> {new_path}')

def sanitize_filename(filename):
    # 禁止ワードや避けたい文字を指定する
    forbidden_words = ['badword1', 'badword2']
    forbidden_characters = r'[~!@#$%^&*()_+={}[\]:;<>,.?/\\|]'
    
    # ファイル名をクリーンアップする
    cleaned_filename = re.sub(forbidden_characters, '_', filename)
    
    for word in forbidden_words:
        cleaned_filename = cleaned_filename.replace(word, '')
    
    return cleaned_filename

if __name__ == "__main__":
    # パスを指定して実行
    folder_path = 'C:\\Users\\デスクトップ\\1'
    rename_files(folder_path)

Pythonを使用して、特定の禁止ワードや避けた方が良いワード、記号が含まれている場合に、フォルダ内の最も深い階層まで再帰的に探索し、それらをアンダースコアにリネームするスクリプトを作成することができます。

このスクリプトでは、rename_files関数が指定されたパスから始まり、再帰的にフォルダ内のすべてのファイルを取得し、それぞれのファイルに対してsanitize_filename関数を使用してファイル名をクリーンアップします。禁止ワードや禁止文字が含まれている場合、これらをアンダースコアに置き換えます。最終的に、ファイルがリネームされた場合はコンソールにその旨を表示します。

注意: ファイル名の変更は慎重に行う必要があります。スクリプトを実行する前に、バックアップを取得するか、テスト環境で動作を確認することをお勧めします。


最後までお読みいただきありがとうございます。
♡頂けますと、励みになります。

この記事が気に入ったらサポートをしてみませんか?