Войти Создать аккаунт

Дубликаты файлов · Шаг 3 из 4

Одинаковые по содержимому

Кучки одинакового размера есть, отпечаток считать умеем. Осталось внутри каждой кучки разложить файлы по отпечаткам. Одна беда: на настоящем диске файл может не открыться — нет прав или его удалили, пока утилита шла по папке. Из-за одного такого файла отчёт не должен пропадать целиком.

Что сделать

Внутри каждой кучки одного размера найдите файлы с одинаковым отпечатком; непрочитанные — в отдельный список.

Что приходит

  • kuchki — список кучек путей из шага 1

  • otpechatok_fayla — функция «путь → отпечаток»; если файл не прочитать, бросает OSError

Что вернуть

Пару (группы, не_прочитаны): группы — списки путей с одинаковым отпечатком, не меньше двух в каждой; не_прочитаны — пути, на которых был OSError.

Допишите функцию odinakovye в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

В проекте

Утилита передаёт сюда кучки из шага 1 и функцию, которая открывает файл и зовёт ваш шаг 2. Что вы вернули, уйдёт в отчёт — шаг 4.

Пример

В проверке отпечатки лежат в словаре: у a.jpg и b.jpg — "f00", у c.jpg — "bad". Кучка ["a.jpg", "b.jpg", "c.jpg"] даёт одну группу копий ["a.jpg", "b.jpg"], непрочитанных нет: ([["a.jpg", "b.jpg"]], []).

Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.