Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Rooster

Программирование[9]

Перепись  

260 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

ну и ваще говно-аналитика от канта, в текущем виде с shallow=True оно просто сравнивает размер файлов и время последней модификации, считая, что файлы одинаковые, если обе штуки идеально совпали, т.е. в таком сценарии в принципе похуй на n^2

Поделиться сообщением


Ссылка на сообщение

252 страница сорптируем пузырьком :geys:

не зря я тему сортировки поднимал походу

JuJeu понравилось это

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение
besteady написал 1 минуту назад:
Kant написал 8 минут назад:

нормально у тебя O(n^2) сравнивалка файлов

может там у чела терабайт порно видосов одинаковых, к концу года сравнишь

хоть бы хэши прикрутил

Так если n это количество файлов, это нормально не?

Да и shallow=True можно условно сказать, что хэш

N и есть количество файлов, чем ему еще быть?

даже если этот shallow считает хэш внутри сам, он всё равно читает файл, чтобы посчитать этот хэш

зачем это делать на каждый круг по N раз, у тебя что файлы меняются?

сделал группировку по размеру, кого больше 1 в группе, среди этой группы посчитать хэши и погруппировать по ним, а дальше уже сравнивать оставшийся мизер совпавших хэшей в новых подгруппах чем угодно.


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
moonfangtopich написал 3 минуты назад:

ну и ваще говно-аналитика от канта, в текущем виде с shallow=True оно просто сравнивает размер файлов и время последней модификации, считая, что файлы одинаковые, если обе штуки идеально совпали, т.е. в таком сценарии в принципе похуй на n^2

это вообще не сравнение в таком случае


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

в этом и заключаются подводные камни питона (или хз чё там за код)

чел не понимает что делает написанная программа


:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение
Kant said Just now:
moonfangtopich said 4 minutes ago:

ну и ваще говно-аналитика от канта, в текущем виде с shallow=True оно просто сравнивает размер файлов и время последней модификации, считая, что файлы одинаковые, если обе штуки идеально совпали, т.е. в таком сценарии в принципе похуй на n^2

это вообще не сравнение в таком случае

ну давай расскажи мне тут как я должен был учесть эдж кейсы, когда случайным образом у файлов совпали размеры в байтах и время модификации тоже с каким-то ебануто мелким разрешением

 

я послухаю вот так:coolstorybob:, а скрипт в это время идеально отработает)))

Поделиться сообщением


Ссылка на сообщение
Kant написал 1 минуту назад:

даже если этот shallow считает хэш внутри сам, он всё равно читает файл, чтобы посчитать этот хэш

Ну вот именно, что нет "If shallow is true, files with identical os.stat() signatures are taken to be equal"

 

Но вообще имеет смысл посчитать нормальный хэш, чтобы можно было находить одинаковые файлы, которые мелко отличаются. Но тут по идее какой хэш брать зависит от типа файла. Для картинок такой точно есть на двощах в куклоскрипте так картинки можно скрывать похожие.

Kant написал 5 минут назад:

зачем это делать на каждый круг по N раз, у тебя что файлы меняются?

Если с shallow=True то почему не похуй


 

zqHT9JA.png

IFVau8G.png

AohP0ps.png

Поделиться сообщением


Ссылка на сообщение

нужна неделя чтобы прочитать код

E1azor и Nikki Sixx понравилось это

have courage and be kind

  😈🫀💋 🩸👣🤌🏿🦄 🐝 ☄️❣️ 💕 💞❤️😈

 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖

220941652_Annotation2021-03-20123345.jpg.23dcff343d6a377badf433b20f5271fd.jpg

💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 

Поделиться сообщением


Ссылка на сообщение

видимо тут caveat в том, что можно скопировать текстовый файлик, поменять в нем букву, сохранить, потом вернуть как было и сохранить опять

 

пиздец нахуй наебали алгоритм!! наверняка у того чела именно такая ситуация

asparkam said 1 hour ago:

Как написать программу, которая удаляет одинаковые файлы, но оставляет оригинал. Например, по размеру файла.

))))) упс

Поделиться сообщением


Ссылка на сообщение
(изменено)
Kant написал 29 минут назад:

нормально у тебя O(n^2) сравнивалка файлов

может там у чела терабайт порно видосов одинаковых, к концу года сравнишь

хоть бы хэши прикрутил

при колизии выкинешь файл, который может быть единственный в своем виде компромат на путина?

если worst case scenario то без потери данных быстрее не сделать же

 

 

 

а решение я бы сказал должно работать с кейсом, когда ты 10 раз скачиваешь файл в хроме - у тебя 10 одинаковых файлов с названиями (1), (2) и тд. при этом дата создания/созхранения/изменения у них разная


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Just.Doit said 5 minutes ago:

а решение я бы сказал должно работать с кейсом, когда ты 10 раз скачиваешь файл в хроме - у тебя 10 одинаковых файлов с названиями (1), (2) и тд. при этом дата создания/созхранения/изменения у них разная

ну можно подправить под этот кейс, изменив одну строчку

Поделиться сообщением


Ссылка на сообщение

Конфиг в коде

как круто

Pep_See понравилось это

ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 14 минут назад:

а решение я бы сказал должно работать с кейсом, когда ты 10 раз скачиваешь файл в хроме - у тебя 10 одинаковых файлов с названиями (1), (2) и тд. при этом дата создания/созхранения/изменения у них разная

Как ни странно всё будет ок

image.png.0abba2bcefce38755ee9ff9692167774.png

 

Видимо он на время создания, изменения не смотрит 

besteady написал 4 минуты назад:

изменения не смотрит 

Хотя я не понял

image.png.bdadd9c1e6f06d904108e937c4e0d80d.png


 

zqHT9JA.png

IFVau8G.png

AohP0ps.png

Поделиться сообщением


Ссылка на сообщение
(изменено)
besteady said 15 minutes ago:
besteady said 15 minutes ago:

изменения не смотрит 

Хотя я не понял

image.png.bdadd9c1e6f06d904108e937c4e0d80d.png

жиза, тоже туда пошел и че-то не понял

 

==========

 

а, ну понятно, если сигнатура неидентичная, но при этом файлы имеют одинаковый размер, оно фоллбекает до побайтового сравнения. при этом сравнивает не целиком, а по кусочкам, до первого несовпадения (т.е. довольно легкая проверка, можно хоть терабайт фильмов сравнивать)


Изменено пользователем moonfangtopich
UglyBastard понравилось это

Поделиться сообщением


Ссылка на сообщение
moonfangtopich написал 48 минут назад:
Kant написал 51 минуту назад:
moonfangtopich написал 55 минут назад:

это вообще не сравнение в таком случае

ну давай расскажи мне тут как я должен был учесть эдж кейсы, когда случайным образом у файлов совпали размеры в байтах и время модификации тоже с каким-то ебануто мелким разрешением

 

я послухаю вот так:coolstorybob:, а скрипт в это время идеально отработает)))

да изи

любая прога дампящая кадры с видео нагенерит тебе тысячи файлов одинакового размера за секунду, хули ей

или какой-нибудь архиватор который просто проебал все настоящие времена файлов и они теперь одинаковые

и еще пару сотен тысяч вариантов

 

 

Just.Doit написал 40 минут назад:
Kant написал 1 час назад:

нормально у тебя O(n^2) сравнивалка файлов

может там у чела терабайт порно видосов одинаковых, к концу года сравнишь

хоть бы хэши прикрутил

при колизии выкинешь файл, который может быть единственный в своем виде компромат на путина?

если worst case scenario то без потери данных быстрее не сделать же

 

 

 

а решение я бы сказал должно работать с кейсом, когда ты 10 раз скачиваешь файл в хроме - у тебя 10 одинаковых файлов с названиями (1), (2) и тд. при этом дата создания/созхранения/изменения у них разная

 

у тебя чет с чтением траблы, я же написал, что в оставшихся подгруппах с совпадающими хэшами придется проверять, но это много меньше чем крутится кадратично во всей группе с одинаковым размером, лол, если у тебя вообще хоть 1 такая найдется, кроме реальных дублей

 

moonfangtopich написал 18 минут назад:
besteady написал 25 минут назад:
besteady написал 25 минут назад:

Хотя я не понял

image.png.bdadd9c1e6f06d904108e937c4e0d80d.png

жиза, тоже туда пошел и че-то не понял

 

==========

 

а, ну понятно, если сигнатура неидентичная, но при этом файлы имеют одинаковый размер, оно фоллбекает до побайтового сравнения. при этом сравнивает не целиком, а по кусочкам, до первого несовпадения (т.е. довольно легкая проверка, можно хоть терабайт фильмов сравнивать)

 

опа, а вот и скан файлов по кругу в двойном цикле подъехал, нежданчик


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

Я НЕ ПОНИМАЮ, ЧТО ТЫ ПЫТАЕШЬСЯ МНЕ ДОКАЗАТЬ
 

что сравнение файлов на идентичность имеет кучу пограничных случаев, почти никакие из которых не покрыты моим скриптом на 15 строчек? ноу шит братан

 

другой вопрос, что почти наверняка придет тот, кому это предназначалось, и скажет "бля от души братуха, отработало как часы" - на этом моменте нужно будет остановиться и подумать, к чему была вся эта дискуссия с пенсне на глазу

Поделиться сообщением


Ссылка на сообщение
Kant написал 7 минут назад:

опа, а вот и скан файлов по кругу в двойном цикле подъехал, нежданчик

Чтобы это было плохо нужны какие-то овер специфические данные. Одинакового размера с длинным одинаковым началом. Дефолтные видосы/картинки/текст не подойдут


 

zqHT9JA.png

IFVau8G.png

AohP0ps.png

Поделиться сообщением


Ссылка на сообщение
asparkam написал 2 часа назад:

Как написать программу, которая удаляет одинаковые файлы, но оставляет оригинал. Например, по размеру файла. Ну или просто выборка без удаления, с оставлением одной копии. Файлы находятся в обычной папке windows

    public static void main(String[] args) throws IOException
    {
        Path start = null;
        DuplicateDeleteFileVisitor visitor =
            new DuplicateDeleteFileVisitor(DuplicateDeleteFileVisitor.ComparePolicy.NAME);
        Files.walkFileTree(start, visitor);
        visitor.delete();
    }


    public static class DuplicateDeleteFileVisitor extends SimpleFileVisitor<Path>
    {


        enum ComparePolicy
        {NAME, SIZE;}
        private final Set<Path> toDelete;
        private final Set<CompareFileAttributes> processed;

        public DuplicateDeleteFileVisitor(ComparePolicy comparePolicy)
        {
            this.toDelete = new HashSet<>();
            this.processed = new TreeSet<>(comparePolicyComparatorFactory(comparePolicy));
        }

        public void delete()
        {
            toDelete.forEach(path -> path.toFile().delete());
        }

        @NotNull
        private Comparator<CompareFileAttributes> comparePolicyComparatorFactory(ComparePolicy comparePolicy)
        {
            switch (comparePolicy)
            {
                case NAME:
                    return Comparator.comparing(CompareFileAttributes::getName);
                case SIZE:
                    return Comparator.comparing(CompareFileAttributes::getSize);
                default:
                    throw new IllegalArgumentException();
            }
        }

        public FileVisitResult visitFile(Path path, BasicFileAttributes fileAttributes) throws IOException
        {

            if (fileAttributes.isRegularFile())
            {
                CompareFileAttributes compareFileAttributes = CompareFileAttributes.builder()
                                                                  .creationTime(fileAttributes.creationTime())
                                                                  .name(path.toFile().getName())
                                                                  .size(path.toFile().length())
                                                                  .build();
                if (!processed.add(compareFileAttributes))
                {
                    toDelete.add(path);
                }
            }
            return FileVisitResult.CONTINUE;
        }

        @Value
        @Builder
        static class CompareFileAttributes
        {
            String name;
            FileTime creationTime;
            long size;
        }
    }

На самом деле не суперэффективно, ибо не параллельно

, и O(log n) из-за TreeSet а его использовал потому, что он позволяет передать свой equals компаратор по сути.

 

Можно легко допилить сюда множество своих критериев сравнения и поддержку одновременного поиска дубликатов по нескольким критериям.

Ах да, потратил 20 минут своей жизни на эту хуйню :pepehands:

Поделиться сообщением


Ссылка на сообщение

потратил 0 мне норм


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение

Кто на плюсах напишет решение скриптовой задачи?:kaifstelish:


 

zqHT9JA.png

IFVau8G.png

AohP0ps.png

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...