Вот несколько методов пакетного переименования файлов в Python:
-
Использование модуля
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_') -
Использование модуля
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_') -
Использование модуля
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_') -
Использование регулярных выражений:
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_')