|
0 / 0 / 0
Регистрация: 21.04.2014
Сообщений: 12
|
|
Оставить в папке с файлами только самые большие по размеру, остальные - удалить04.07.2019, 15:46. Показов 4869. Ответов 4
Здравствуйте! Есть проблема с сортировкой файлов в папке, а именно: имеется папка с файлами *.mp3 (~35 000 файлов). Некоторые из файлов повторяются вплоть до 250 раз (это на данный момент, дальше может быть больше). То есть, например, есть файлы Name_surname.mp3, Name_surname (1).mp3, Name_surname (2).mp3 ... Name_surname (249).mp3, Name_surname_name.mp3, Name_surname_name (1).mp3, Name_surname_name (2).mp3 ... Name_surname_name (249).mp3 Содержимое файлов в наборе аналогичное за исключением того, что некоторые больше размером и, соответственно, содержат больше информации. Необходимо из каждого такого набора файлов оставить только один самый большой по размеру.
Есть понимание, как это должно работать: 1. Получить список всех файлов в папке (directory_files = os.listdir(directory_path)). 2. Циклично брать имя первого файла в списке без расширения и цифрового индекса (directory_files[1][:-9]), например "Name_surname". 3. Из списка directory_files изъять все файлы содержащие имя directory_files[1][:-9] (в списке должны остаться Name_surname (1).mp3 ... Name_surname (249).mp3). 4. Отсортировать все оставшиеся файлы по размеру (по убыванию) в новый список del_list. 5. Из получившегося списка del_list удалить первый элемент (самый большой файл), циклом с os.remove() пройтись по всем оставшимся файлам в списке и удалить все элементы списка del_list из списка directory_files. 6. Повторить п.п.2-5 до тех пор, пока список directory_files не опустеет. Как достать список всех файлов в директории и получить их размеры я разобрался. Но дальше пока не могу продвинуться, не понимаю, как осуществить поиск в списке файлов (как найти все вхождения Name_surname и внести их в отдельный список). Заранее спасибо!
0
|
|
| 04.07.2019, 15:46 | |
|
Ответы с готовыми решениями:
4
Необходимо оставить в папке самые старые файлы и два самых новых Сортировка одномерного массива - числа большие 2 по возрастанию, а остальные оставить на своих местах |
|
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
|
||||||
| 04.07.2019, 20:21 | ||||||
Сообщение было отмечено wmzkot как решение
Решение
wmzkot, вот такой вариант
2
|
||||||
|
638 / 416 / 27
Регистрация: 03.11.2009
Сообщений: 1,855
|
|
| 09.07.2019, 19:33 | |
|
может лучше хеш файла сравнивать (md5, sha1), надежней определить можно дубликат или нет)
0
|
|
|
0 / 0 / 0
Регистрация: 21.04.2014
Сообщений: 12
|
|||
| 10.07.2019, 23:20 [ТС] | |||
|
Я пытался это реализовать более "костыльным путём", но так и не смог прийти к решению. Да и код у вас намного более оптимизированный. Мой неполный код только на 39 строк, а у вас всё в 27 уместилось. Еще раз большое спасибо! Добавлено через 2 минуты
0
|
|||
|
638 / 416 / 27
Регистрация: 03.11.2009
Сообщений: 1,855
|
|
| 17.07.2019, 00:01 | |
|
wmzkot, может тогда использовать что-то типа такого поиск похожих аудио
0
|
|
| 17.07.2019, 00:01 | |
|
Помогаю со студенческими работами здесь
5
Как сделать, чтобы Tesseract распознавал только самые большие слова на картинке Оставить в текстовом файле 20 строк, остальные удалить
Разукрасить разними цветами самые большие и самые наименьшие элементы массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|