Пакетное переименование файлов в Python: несколько методов эффективного переименования файлов

Вот несколько методов пакетного переименования файлов в Python:

  1. Использование модуля os:

    import os
    def batch_rename(directory, prefix):
       for filename in os.listdir(directory):
           if filename.endswith('.txt'):  # Filter files by extension, e.g., .txt
               new_name = prefix + filename
               os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))
    # Usage example
    batch_rename('/path/to/directory', 'new_')
  2. Использование модуля glob:

    import glob
    import os
    def batch_rename(directory, prefix):
       for file_path in glob.glob(os.path.join(directory, '*.txt')):  # Filter files by extension
           new_name = prefix + os.path.basename(file_path)
           os.rename(file_path, os.path.join(directory, new_name))
    # Usage example
    batch_rename('/path/to/directory', 'new_')
  3. Использование модуля pathlib(Python 3.4 и выше):

    import pathlib
    def batch_rename(directory, prefix):
       pathlist = pathlib.Path(directory).rglob('*.txt')  # Recursively find files by extension
       for path in pathlist:
           new_name = prefix + path.name
           path.rename(path.with_name(new_name))
    # Usage example
    batch_rename('/path/to/directory', 'new_')
  4. Использование регулярных выражений:

    import os
    import re
    def batch_rename(directory, pattern, replacement):
       for filename in os.listdir(directory):
           if filename.endswith('.txt'):  # Filter files by extension
               new_name = re.sub(pattern, replacement, filename)
               os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))
    # Usage example: Replace 'old_' with 'new_'
    batch_rename('/path/to/directory', r'^old_', 'new_')