Пакетное переименование файлов с помощью Python

Пакетное переименование — эффективный способ организовать цифровые файлы. Особенно полезно, когда у файлов нет описательных или согласованных имён.
С помощью простого Python-скрипта вы можете автоматизировать переименование по шаблону. Скрипт берёт шаблон, добавляет счётчик и расширение, затем переименовывает все файлы в папке.
В этой статье вы найдёте:
- как пройти по всем файлам в каталоге;
- готовый, понятный скрипт с обработкой ошибок;
- команды запуска и примеры шаблонов;
- когда скрипт не подойдёт и альтернативы;
- чек-лист подготовки и критерии приёмки.
Зачем использовать пакетное переименование
Преимущества:
- единообразие имён для архивации и поиска;
- удобство для массовой обработки и скриптинга;
- подготовка файлов для загрузки в системы, где важен формат имён.
Краткое определение: Пакетное переименование — автоматическое изменение имён множества файлов по заданному правилу.
Как перебрать все файлы в каталоге
Есть множество способов переименовать файлы в Windows: Проводник, командная строка, PowerShell или сторонние утилиты. Python даёт гибкость, переносимость и возможность записать логи.
Основная идея: пройти по файлам каталога (os.listdir или pathlib), пропустить поддиректории, собрать расширение файла, собрать новое имя и вызвать os.rename.
Ниже — цельный пример скрипта, аккуратно обрабатывающий ошибки и дающий понятные сообщения. Скопируйте его в файл batch-rename.py.
#!/usr/bin/env python3
import os
import sys
def safe_rename(old, new):
try:
os.rename(old, new)
return True
except Exception as e:
print(f"Ошибка при переименовании {old} -> {new}: {e}")
return False
def main():
if len(sys.argv) < 3:
print("Использование: python batch-rename.py <папка> \"Шаблон_имени\"")
print("Пример: python batch-rename.py files Financial_Planning")
sys.exit(1)
dir_path = sys.argv[1]
pattern_arg = sys.argv[2]
pattern = pattern_arg + "_{}"
counter = 1
if not os.path.isdir(dir_path):
print("Папка не найдена:", dir_path)
sys.exit(1)
for filename in os.listdir(dir_path):
old_path = os.path.join(dir_path, filename)
if os.path.isdir(old_path):
# Пропустить папки
continue
file_ext = os.path.splitext(filename)[1]
new_filename = pattern.format(counter) + file_ext
new_path = os.path.join(dir_path, new_filename)
# Если имя уже существует, добавим дополнительный суффикс
suffix = 1
candidate = new_path
while os.path.exists(candidate):
candidate = os.path.join(dir_path, pattern.format(counter) + f"_{suffix}" + file_ext)
suffix += 1
if safe_rename(old_path, candidate):
print(f"Переименовано: {filename} -> {os.path.basename(candidate)}")
counter += 1
print("Все файлы обработаны.")
if __name__ == '__main__':
main()Как запустить скрипт
- Поместите скрипт и папку с файлами в удобное место.
- Откройте терминал или cmd и перейдите в каталог со скриптом.
- Выполните команду:
python batch-rename.py путь/к/папке "Financial_Planning"или с относительным путём, если папка находится рядом со скриптом:
python batch-rename.py files "Financial_Planning"После выполнения откройте проводник и убедитесь в результатах.
Как формируются новые имена
Правило в примере: <шаблон>_<номер><расширение>, например Financial_Planning_1.pdf.
Ментальная модель: шаблон + счётчик + расширение. Всегда сохраняйте расширение файла, чтобы операционная система и программы могли определить тип.
Когда этот подход не подходит
- Файлы должны сохранить оригинальную связь с метаданными (например, фото с уникальными датами в EXIF) — возможно, лучше переименовывать по EXIF.
- Если необходима сложная логика (замена частей имени, регулярные выражения) — расширьте скрипт или используйте специализированные утилиты.
- Когда права доступа запрещают переименование файлов.
- Если имена уже содержат полезные данные — риск потерять информацию.
Альтернативные подходы
- PowerShell (Windows): Get-ChildItem + Rename-Item — встроенный и быстрый способ.
- Командная строка (bash): mv в цикле или утилиты rename.
- Графические инструменты: Bulk Rename Utility, Advanced Renamer — удобны для визуальных сценариев.
- Python pathlib: современная альтернатива os, более понятный API.
Методология перед переименованием (мини-инструкция)
- Сделайте резервную копию папки (копия или архив).
- Протестируйте скрипт на 5–10 файлах.
- Проверьте права доступа и наличие скрытых файлов.
- Запустите в тестовом режиме и проверьте результаты.
- Выполните основное переименование и сохраните лог.
Критерии приёмки
- Все целевые файлы в папке имеют имена по шаблону.
- Расширения не потеряны и сопоставимы с исходными типами.
- Нет перезаписанных файлов без явного суффикса разрешения конфликта.
- Скрипт не изменил содержимое файла.
Чек-лист перед запуском (роль: системный администратор / пользователь)
- Администратор: проверить политики резервного копирования и права на папку.
- Пользователь: убедиться, что нет важных файлов с особыми именами.
- Оба: создать резервную копию и протестировать на выборке.
Риски и меры по снижению
- Риск: потеря исходных имён. Мера: сделать резервную копию перед запуском.
- Риск: перезапись файлов. Мера: в скрипте предусмотрена проверка существующих имён и добавление суффикса.
- Риск: нарушение конфиденциальности. Мера: не выполнять скрипт в папках с чувствительными данными без анализа.
Тестовые случаи и приёмка
- Тест 1: папка с 10 файлами разных расширений — все переименованы и расширения сохранены.
- Тест 2: в папке есть поддиректория — она игнорируется.
- Тест 3: одинаковые имена исходно — скрипт не перезаписывает без суффикса.
Примеры, когда полезно
- Подготовка отчетов к отправке: Financial_Planning_1, Financial_Planning_2…
- Переименование фотографий для загрузки в CMS.
- Упорядочивание логов по шаблону для автоматической обработки.
Соображения по безопасности и приватности
Не выполняйте пакетное переименование в корневых или системных папках. Перед массовыми операциями проверьте, что в папке нет файлов с чувствительной информацией, и соблюдайте внутренние правила хранения данных и GDPR, если применимо.
Итог
Пакетное переименование с помощью Python — простой и гибкий способ привести имена файлов к единому формату. Начните с резервного копирования, протестируйте скрипт на выборке и используйте предоставленный пример как основу для расширения логики под ваши задачи.
Важное: всегда сначала создавайте резервную копию и проверяйте результаты на небольшой выборке.
Похожие материалы
Как устроить идеальную вечеринку для просмотра ТВ
Как распаковать несколько RAR‑файлов сразу
Приватный просмотр в Linux: как и зачем
Windows 11 не видит iPod — способы исправить
PS5: как настроить игровые пресеты