Недавно я столкнулся с задачей группового переименования файлов в папке и решил создать функцию на Python, чтобы автоматизировать этот процесс. Мы можем использовать эту функцию для переименования только определенных файлов в заданной папке.
Сразу хочу отметить, что для работы функции нам потребуется модуль `os`, который предоставляет функции для работы с файловой системой.Вот пример функции⁚
python
import os
def group_rename_files(folder_path, desired_name, digits_num, src_extension, dest_extension, name_range)⁚
counter 1
for file in os.listdir(folder_path)⁚
if file.endswith(src_extension)⁚
src_name os.path.join(folder_path, file)
dest_name »
if len(name_range) 0⁚
dest_name ‘{}{⁚0{}}.{}’.format(desired_name, counter, digits_num, dest_extension)
else⁚
name_part file[name_range[0]-1⁚name_range[1]]
dest_name ‘{}{}{⁚0{}}.{}’.format(name_part, desired_name, counter, digits_num, dest_extension)
os.rename(src_name, os.path.join(folder_path, dest_name))
counter 1
В функции `group_rename_files` мы передаем несколько параметров⁚
— `folder_path` ‒ путь к папке, в которой нужно переименовать файлы
— `desired_name` ー желаемое конечное имя файлов
— `digits_num` ー количество цифр в порядковом номере
— `src_extension` ‒ расширение исходных файлов
— `dest_extension` ‒ расширение конечных файлов
— `name_range` ‒ диапазон сохраняемого оригинального имени
Функция использует цикл `for` для обхода файлов в указанной папке. Мы проверяем, заканчивается ли имя файла на `src_extension`. Если да, то мы получаем полный путь к исходному файлу `src_name`.
Далее мы создаем переменную `dest_name`, которая будет содержать конечное имя файла. Если `name_range` равен нулю, то мы просто используем номер в имени файла. Иначе, мы берем часть имени файла, указанную в `name_range`, и добавляем желаемое конечное имя перед порядковым номером.Затем мы используем функцию `os.rename` для переименования файла, передавая ей исходное имя `src_name` и полный путь к новому имени файла `dest_name`.
Наконец, мы увеличиваем счетчик `counter` и переходим к следующему файлу.Теперь, чтобы использовать эту функцию, мы можем просто вызвать ее, передав нужные параметры⁚
python
group_rename_files(‘/путь/к/папке’, ‘новое_имя’, 4, ‘.txt’, ‘txt’, [3, 6])
В данном примере мы переименуем все файлы с расширением `.txt` в заданной папке.
Мы добавим желаемое конечное имя `новое_имя`, передаем 4 цифры в порядковом номере и сохраняем только буквы с 3 по ы из исходного имени файла.
Теперь у нас есть функция, которую мы можем использовать для группового переименования файлов в папке. Надеюсь, это поможет вам упростить вашу работу с файлами!