Дубликаты файлов · Шаг 1 из 4
Сначала по размеру
В папке «Загрузки» — три тысячи файлов, и читать каждый, чтобы сравнить со всеми, — долго. Но у одинаковых файлов размер всегда одинаковый. Значит, сначала можно разложить файлы по размеру — без чтения, размер известен сразу, — и сравнивать содержимое только внутри кучек.
Что сделать
Разложите файлы по размеру и оставьте только кучки, где файлов одного размера больше одного.
Что приходит
fayly— список пар(путь, размер в байтах)
Что вернуть
Список кучек — списков путей: в кучке не меньше двух путей одного ненулевого размера, пути по алфавиту, кучки — от больших файлов к маленьким.
Допишите функцию po_razmeru в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Утилита зовёт po_razmeru на всех файлах папки. Содержимое она будет читать только у файлов из ваших кучек — у остальных его читать незачем.
po_razmeru([("a.jpg", 100), ("b.jpg", 100), ("c.txt", 5)])
[['a.jpg', 'b.jpg']]
Файлы одного размера — одна кучка. Кучки из одного файла не нужны: такому файлу не с кем совпадать. Пустые файлы (размер 0) не нужны тоже: все они одинаковы, но места не занимают.
Пути в кучке — по алфавиту. Кучки — по убыванию размера их файлов: большие копии отнимают больше места, их видно первыми.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.