Гид по технологиям

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

4 min read Программирование Обновлено 06 Dec 2025
Пакетное переименование файлов — Python
Пакетное переименование файлов — 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()

Как запустить скрипт

  1. Поместите скрипт и папку с файлами в удобное место.
  2. Откройте терминал или cmd и перейдите в каталог со скриптом.
  3. Выполните команду:
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.

Методология перед переименованием (мини-инструкция)

  1. Сделайте резервную копию папки (копия или архив).
  2. Протестируйте скрипт на 5–10 файлах.
  3. Проверьте права доступа и наличие скрытых файлов.
  4. Запустите в тестовом режиме и проверьте результаты.
  5. Выполните основное переименование и сохраните лог.

Критерии приёмки

  • Все целевые файлы в папке имеют имена по шаблону.
  • Расширения не потеряны и сопоставимы с исходными типами.
  • Нет перезаписанных файлов без явного суффикса разрешения конфликта.
  • Скрипт не изменил содержимое файла.

Чек-лист перед запуском (роль: системный администратор / пользователь)

  • Администратор: проверить политики резервного копирования и права на папку.
  • Пользователь: убедиться, что нет важных файлов с особыми именами.
  • Оба: создать резервную копию и протестировать на выборке.

Риски и меры по снижению

  • Риск: потеря исходных имён. Мера: сделать резервную копию перед запуском.
  • Риск: перезапись файлов. Мера: в скрипте предусмотрена проверка существующих имён и добавление суффикса.
  • Риск: нарушение конфиденциальности. Мера: не выполнять скрипт в папках с чувствительными данными без анализа.

Тестовые случаи и приёмка

  • Тест 1: папка с 10 файлами разных расширений — все переименованы и расширения сохранены.
  • Тест 2: в папке есть поддиректория — она игнорируется.
  • Тест 3: одинаковые имена исходно — скрипт не перезаписывает без суффикса.

Примеры, когда полезно

  • Подготовка отчетов к отправке: Financial_Planning_1, Financial_Planning_2…
  • Переименование фотографий для загрузки в CMS.
  • Упорядочивание логов по шаблону для автоматической обработки.

Соображения по безопасности и приватности

Не выполняйте пакетное переименование в корневых или системных папках. Перед массовыми операциями проверьте, что в папке нет файлов с чувствительной информацией, и соблюдайте внутренние правила хранения данных и GDPR, если применимо.

Итог

Пакетное переименование с помощью Python — простой и гибкий способ привести имена файлов к единому формату. Начните с резервного копирования, протестируйте скрипт на выборке и используйте предоставленный пример как основу для расширения логики под ваши задачи.

Важное: всегда сначала создавайте резервную копию и проверяйте результаты на небольшой выборке.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как устроить идеальную вечеринку для просмотра ТВ
Развлечения

Как устроить идеальную вечеринку для просмотра ТВ

Как распаковать несколько RAR‑файлов сразу
Инструменты

Как распаковать несколько RAR‑файлов сразу

Приватный просмотр в Linux: как и зачем
Приватность

Приватный просмотр в Linux: как и зачем

Windows 11 не видит iPod — способы исправить
Руководство

Windows 11 не видит iPod — способы исправить

PS5: как настроить игровые пресеты
Консоли

PS5: как настроить игровые пресеты

Как переключить камеру в Omegle на iPhone и Android
Руководство

Как переключить камеру в Omegle на iPhone и Android