|
0 / 0 / 0
Регистрация: 21.04.2014
Сообщений: 12
|
|
Оставить в папке с файлами только самые большие по размеру, остальные - удалить04.07.2019, 15:46. Показов 4836. Ответов 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 по возрастанию, а остальные оставить на своих местах |
|
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
|
||||||
| 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 строк, остальные удалить
Разукрасить разними цветами самые большие и самые наименьшие элементы массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|