Массовое переименование · Шаг 1 из 4
Имя по шаблону
Тимур разбирает фотографии после отпуска: триста файлов IMG_0421.JPG, DSC 01.jpeg, и все надо назвать по порядку — «Отпуск_001.JPG». Такие шаблоны он видел в Total Commander: [N] — старое имя, [E] — расширение, [C3] — номер тремя цифрами.
Что сделать
Соберите новое имя файла по шаблону: подставьте вместо полей в квадратных скобках части старого имени и номер.
Что приходит
shablon— шаблон имени:"Отпуск_[C3].[E]"imya— старое имя файла целиком:"IMG_0421.JPG"nomer— номер файла по порядку, целое число от нуля
Что вернуть
Новое имя строкой: "Отпуск_007.JPG"; поле не из списка или непарная скобка — ValueError.
Допишите функцию novoe_imya в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Программа зовёт novoe_imya для каждого файла папки по порядку имён и собирает пары «старое — новое имя» для шага 2. Ошибку шаблона она показывает человеку до того, как что-то трогать.
novoe_imya("Отпуск_[C3].[E]", "IMG_0421.JPG", 7)
'Отпуск_007.JPG'
Имя делится на основу и расширение, как у pathlib: расширение — от последней точки (archive.tar.gz — основа archive.tar, расширение gz); у README и .bashrc расширения нет, основа — имя целиком.
Поля — в квадратных скобках, большими буквами:
[N]— основа целиком;[N5]— пятый знак основы (знаки — с единицы);[N5-8]— знаки с пятого по восьмой включительно;[N5-]— с пятого до конца. Знаков не хватает — сколько есть, хоть ничего;[E]— расширение без точки;[C]— номер;[C3]— номер, дополненный нулями слева до трёх цифр (7→007; длиннее — как есть:1234).
Номера знаков в [N…] — от 1, без нулей впереди. Всё вне скобок переписывается как есть. В конце результата точки и пробелы убираются: "[N].[E]" у README даёт README.
Ошибки — ValueError: в скобках не поле из списка ([X], [n], [N0]) — в тексте ошибки это поле со скобками в кавычках-«ёлочках»: не знаю поля «[X]»; скобка без пары в шаблоне — тоже ValueError. Скобки внутри старого имени (фото [1].png) ошибкой не считаются: это данные, а не шаблон.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.