Skip to content

apostxl/HW_6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HW_6

У многих на рабочем столе есть папка, которая называется как-то вроде "Разобрать". Как правило, разобрать эту папку руки никогда так и не доходят.

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

Скрипт принимает один аргумент при запуске — это имя папки, в которой он будет проводить сортировку. Допустим файл с программой называется sort.py, тогда, чтобы отсортировать папку /user/Desktop/Хлам, надо запустить скрипт командой python sort.py /user/Desktop/Хлам

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

изображения ('JPEG', 'PNG', 'JPG', 'SVG'); видео файлы ('AVI', 'MP4', 'MOV', 'MKV'); документы ('DOC', 'DOCX', 'TXT', 'PDF', 'XLSX', 'PPTX'); музыка ('MP3', 'OGG', 'WAV', 'AMR'); архивы ('ZIP', 'GZ', 'TAR'); неизвестные расширения. Вы можете расширить и дополнить этот список, если хотите.

В результатах работы должны быть:

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

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

Функция normalize:

Проводит транслитерацию кириллического алфавита на латинский. Заменяет все символы кроме латинских букв, цифр на '_'. Требования к функции normalize:

принимает на вход строку и возвращает строку; проводит транслитерацию кириллических символов на латиницу; заменяет все символы, кроме букв латинского алфавита и цифр, на символ '_'; транслитерация может не соответствовать стандарту, но быть читабельной; большие буквы остаются большими, а меленькие — маленькими после транслитерации. Условия для обработки: изображения переносим в папку images документы переносим в папку documents аудио файлы переносим в audio видео файлы в video архивы распаковываются и их содержимое переносится в папку archives Критерии приёма задания все файлы и папки переименовываются при помощи функции normalize. расширения файлов не изменяются после переименования. пустые папки удаляются скрипт игнорирует папки archives, video, audio, documents, images; распакованное содержимое архива переносится в папку archives в подпапку, названную точно так же, как и архив, но без расширения в конце; файлы, расширения которых неизвестны, остаются без изменений.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages