Переименовать файл удалив все что идет после вхождения + само вхождение
Переименовать файл удалив все что идет после вхождения + само вхождение (Python)
(для примера) Есть файлы с названием типа:
19625361_12022-09-27-09-32-31.jpg
и
241849332022-09-27-09-34-59.jpg
Где
19625361_1.jpgто что нужно получить и удалить дату и время2022-09-27-09-32-3124184933.jpgто что нужно получить и удалить дату и время2022-09-27-09-34-59
Уникальное вхождение у всех файлов это 2022-09-
Подскажите как это сделать ? Файлов огромное количество.
Ответы (1 шт):
Само переименование файлов в Python выполняется функцией
rename()из библиотекиos.Выделение нужного фрагмента в строке, в которой находится имя файла можно делать по-разному, например через регулярные выражения. Но я бы использовал тот факт, что дата у вас всегда занимает 19 символов (включая тире). И расположены они всегда перед последней точкой (или если все файлы jpg - то непосредственно перед строкой
.jpg). То есть удаляете последние 23 символа в строке, а к тому, что осталось добавляете.jpgПоскольку "Файлов огромное количество" то понятно, что описанные выше действия оформляете в виде цикла, который последовательно просматривает ваш каталог с файлами, на каждой итерации вытягивает очередное имя, делает описанное выше преобразования и переименовывает файл.
Вообще говоря, эта задача для второго урока по Python, как только выучили строки и начинают учить циклы. Так что надеюсь - справитесь дальше сами. Ну или в учебник все-таки загляните.
P.S. Дополнение в связи с тем, что ТС решил Python не учить, но задачу все равно делать.
Состояние директории до выполнения скрипта:
Скрипт:
import os
dir = r"D:\Загрузка\s1"
files = os.listdir(dir)
for file in files:
new_file = file[:-23]
os.rename(dir + '\\' + file, dir + '\\' + new_file + '.jpg')
Состояние директории после выполнения скрипта:

