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関数を使用してファイル名をクリーンアップします。禁止ワードや禁止文字が含まれている場合、これらをアンダースコアに置き換えます。最終的に、ファイルがリネームされた場合はコンソールにその旨を表示します。
注意: ファイル名の変更は慎重に行う必要があります。スクリプトを実行する前に、バックアップを取得するか、テスト環境で動作を確認することをお勧めします。
最後までお読みいただきありがとうございます。
♡頂けますと、励みになります。
この記事が気に入ったらサポートをしてみませんか?