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

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

Отменить, как было

Тимур переименовал триста фотографий — и понял, что шаблон был не тот. Программа перед каждым переименованием пишет строку в журнал: откуда и куда. Отмена — тот же журнал задом наперёд. Но за это время в папке могло что-то поменяться, а последняя строка журнала, если выключили свет, могла записаться наполовину.

Что сделать

По журналу переименований составьте шаги отмены — в обратном порядке; шаг, который сейчас не выполнить, пропустите и объясните.

Что приходит

  • zhurnal — текст журнала: по строке на переименование, старое и новое имя через табуляцию \t; строки с # — заметки

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

Что вернуть

Словарь {"shagi": [(откуда, куда), …], "propushcheno": [тексты]} — шаги отмены по порядку и что пропущено.

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

В проекте

Программа зовёт otmena по ключу --otmena: показывает шаги и пропущенное, а с --vypolnit переименует обратно.

Пример

В журнале два переименования: 1.jpg → Отпуск_001.jpg и 2.jpg → Отпуск_002.jpg. Отмена — в обратном порядке: сначала ("Отпуск_002.jpg", "2.jpg"), потом ("Отпуск_001.jpg", "1.jpg"). Оба файла на месте, пропущенного нет.

Тот же пример кодом
Перед вызовом
zhurnal = "# переименование 02.11.2026 17:40\n1.jpg\tОтпуск_001.jpg\n2.jpg\tОтпуск_002.jpg\n"
est = ["Отпуск_001.jpg", "Отпуск_002.jpg"]
Вызов
otmena(zhurnal, est)
Вернуть
{'shagi': [('Отпуск_002.jpg', '2.jpg'), ('Отпуск_001.jpg', '1.jpg')], 'propushcheno': []}
Ctrl+Enter — проверить

Обсуждение

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

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