Войти Создать аккаунт

Массовое переименование · Шаг 2 из 4

Пробный показ

Перед тем как трогать триста файлов, программа должна показать, что будет, — и найти беды заранее. Шаблон [N8].[E] даст двум файлам одно имя. В папке уже лежит Фото.jpg, а шаблон хочет назвать так другой файл. Windows и macOS не различают Фото.jpg и фото.jpg — для них это один файл, и переименование молча затрёт чужой.

Что сделать

Проверьте план переименования до дела: уберите файлы, чьё имя не меняется, и найдите все совпадения имён.

Что приходит

  • pary — список пар (старое, новое) из шага 1, по одной на файл

  • est — имена всех файлов, которые сейчас лежат в папке, — и тех, что переименовываются, и остальных

Что вернуть

Словарь {"plan": [пары], "oshibki": [тексты]}; ошибок нет — oshibki пуст, и план можно выполнять.

Допишите функцию probnyy_pokaz в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

В проекте

Программа печатает план и ошибки. Есть хоть одна ошибка — она не переименовывает ничего, даже с ключом --vypolnit. Нет — план уходит шагу 3.

Пример

Три фотографии переименовываются в «Отпуск_001.jpg» … «Отпуск_003.jpg», а в папке уже лежит чужой файл «Отпуск_002.jpg», который никуда не уходит. План — три пары, ошибка одна: «Отпуск_002.jpg» уже есть в папке — «b.jpg» его затрёт. Лежал бы там «отпуск_002.jpg» — ошибка та же: на Windows и macOS это одно имя.

Тот же пример кодом
Перед вызовом
pary = [("a.jpg", "Отпуск_001.jpg"), ("b.jpg", "Отпуск_002.jpg"), ("c.jpg", "Отпуск_003.jpg")]
est = ["a.jpg", "b.jpg", "c.jpg", "Отпуск_002.jpg"]
Вызов
probnyy_pokaz(pary, est)
Вернуть
{'plan': [('a.jpg', 'Отпуск_001.jpg'), ('b.jpg', 'Отпуск_002.jpg'), ('c.jpg', 'Отпуск_003.jpg')], 'oshibki': ['«Отпуск_002.jpg» уже есть в папке — «b.jpg» его затрёт']}
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.