dimzon 05.03.2011 22:46
Скрипты — Скрипт, собирающий видеоколлекцию с разных винтов и группирующий по названию / году выхода
Я у себя в квартире активно использую сетевые медиаплееры класса ASUS O!Play и его собратьев от IconBit. Эти плееры по NFS монтируют шару, расположенную на NAS. К сожалению интерфейс этих плееров очень примитивен - все что может делать плеер это ходить по папкам шары (сортировка только по наименованию, поиска нет). Кроме того у меня много винтов (видны как отдельные папки в шаре) и поиск конкретного фильма может быть весьма нетривиален. Посему я написал данный скрипт. Что он делает:Сканирует все указанные в настройках папки (хранилища фильмов) и собирает при помощи символических ссылок все фильмы в одну папку
Создает папки по первой букве из названия, складывает все фильмы туда (т.е. например папочка "А" и в ней все фильмы на букву "А")
Создаёт папки по году выхода (используется регулярное выражение для поиска "года" в имени папки), складывает фильмы туда (т.е. например папочка "2010" и в ней все фильмы, вышедшие в 2010 году)
Находит дубликаты (по полному совпадению наименования папки с фильмом) и записывает их в специальный файл
Что планируется на будущее:
Поддержка разбиения по жанрам (наличие волшебного файлика в папочке с фильмом, например "Комедия.genre" приведёт к появлению символической ссылки на фильм в соответствующей папочке)
Поддержка разбиения по характеристикам и форматам (SD/HD/DVD)
- ну я как-бы не спец по питону, все синтаксические конструкции постоянно гуглю...
- clean_symlinks рекурсивно удаляет симлинки и пустые папки (задача - аккуратно погрохать то что создал скрипт прошлый раз чтобы пересоздать все заново)
Да это я просто придрался. Метод .count возвращает количество вхождений подстроки в строку. После первого вхождения, перебор будет продолжаться до победного. А конструкция if ltr in "0123456789.,!@#$_()<>{}-" прекратит перебор после первого совпадения. Если скрипт будет работать с 1000 фильмами, разница будет заметна.
вместо if ltr in "0123456789.,!@#$_()<>{}-"?
И поясните, пожалуйста, что делает clean_symlinks? Я так и не понял.