Сортировка файлов в папке
Учусь сортировать папку на Python. Помогите понять, почему не все лишнее удаляется. Есть папка с фото, имена файлов в формате Coby_56_6714652396_0 где
Coby - имя
56 - возраст
6714652396 - ID фото
0 - порядковый номер фото.
Мне нужно, чтобы скрипт удалял лишние фото с условием: если возраст >=39 и количество фото меньше 3, то их нужно удалить все; если возраст <40, то фото не должно быть меньше 2. Что не так с кодом?
import os
def process_files(folder_path):
deleted_files = []
deleted_photos_count = 0
files_info = {}
for filename in os.listdir(folder_path):
name, age, photo_id, order = filename.split('_')
if age.isdigit():
age = int(age)
else:
age = None
files_info.setdefault((name, age), []).append((int(photo_id), int(order.split('.')[0]), filename))
for key, files in files_info.items():
name, age = key
if age is not None and ((age < 40 and len(files) <= 2) or (age >= 40 and len(files) == 1)):
for photo_id, order, filename in files:
deleted_files.append(filename)
os.remove(os.path.join(folder_path, filename))
deleted_photos_count += 1
if deleted_files:
print("Были удалены следующие файлы:")
for deleted_file in deleted_files:
print(deleted_file)
print(f"Всего было удалено {deleted_photos_count} фото.")
else:
print("Не было удалено ни одного файла.")
folder_path = r'D:\Work\Test\Test1'
process_files(folder_path)