Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 10.07.2022
Сообщений: 8

Сортировщик

18.07.2022, 18:09. Показов 866. Ответов 8
Метки нет (Все метки)

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

Скрипт принимает один аргумент при запуске — это имя папки, в которой он будет проводить сортировку. Допустим файл с программой называется 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:
  1. Проводит транслитерацию кириллического алфавита на латинский.
  2. Заменяет все символы кроме латинских букв, цифр на '_'.

Требования к функции normalize:
  • принимает на вход строку и возвращает строку;
  • проводит транслитерацию кириллических символов на латиницу;
  • заменяет все символы, кроме букв латинского алфавита и цифр, на символ '_';
  • транслитерация может не соответствовать стандарту, но быть читабельной;
  • большие буквы остаются большими, а меленькие — маленькими после транслитерации.

Условия для обработки:
  • изображения переносим в папку images
  • документы переносим в папку documents
  • аудио файлы переносим в audio
  • видео файлы в video
  • архивы распаковываются и их содержимое переносится в папку archives

Критерии приёма задания
  • все файлы и папки переименовываются при помощи функции normalize.
  • расширения файлов не изменяются после переименования.
  • пустые папки удаляются
  • скрипт игнорирует папки archives, video, audio, documents, images;
  • распакованное содержимое архива переносится в папку archives в подпапку, названную точно так же, как и архив, но без расширения в конце;
  • файлы, расширения которых неизвестны, остаются без изменений.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.07.2022, 18:09
Ответы с готовыми решениями:

Сортировщик
Нужна помощь! Я только начал изучать os Написал программу сортировщик Мне оставили комментарии Путь к папке должен...

Сортировщик данных по типам
Напишите функцию-сортировщик данных по типам. В качестве аргумента функция typification() получает список данных, а возвращает словарь, в...

Напишите функцию-сортировщик данных по типам
Напишите функцию-сортировщик данных по типам. В качестве аргумента функция typification() получает список данных, а возвращает словарь, в...

8
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
18.07.2022, 19:52
фигасе. и кому это нужно?
0
0 / 0 / 0
Регистрация: 10.07.2022
Сообщений: 8
18.07.2022, 22:09  [ТС]
Semen-Semenich, мне)
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.07.2022, 23:02
Цитата Сообщение от Judaha Посмотреть сообщение
мне)
Помочь решить, разобраться или нужно готовое решение на сдачу курсача?
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
19.07.2022, 01:58
Цитата Сообщение от Judaha Посмотреть сообщение
архивы ('ZIP', 'GZ', 'TAR')
а archive_name.tar.gz считать двумя архивами сразу?
1
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
19.07.2022, 07:28
Цитата Сообщение от Judaha Посмотреть сообщение
все файлы и папки нужно переименовать, удалив из названия все потенциально приводящие к проблемам символы
к файлам в архиве это тоже относится?
Цитата Сообщение от Judaha Посмотреть сообщение
Проводит транслитерацию кириллического алфавита на латинский
на что менять Ё Ь Ъ Й ?
0
0 / 0 / 0
Регистрация: 10.07.2022
Сообщений: 8
19.07.2022, 09:13  [ТС]
iSmokeJC, это обычная домашка)
Готовое решение

Добавлено через 5 минут
Semen-Semenich,
К файлам в архиве это не относится

Ё - E, Ь - отсутствует в англ вместо него либо ничего не пишется, Ъ - такая же ситуация как с Ь, Й - Y
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
19.07.2022, 09:14
Semen-Semenich,
Миниатюры
Сортировщик  
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
19.07.2022, 09:29
Judaha, вот вам начало решения Red white socks, скинул скриншот, начинайте писать словарь по которому будет работать функция normalize
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.07.2022, 09:29
Помогаю со студенческими работами здесь

Вложенный сортировщик
Теперь Людмила просит вас создать функцию sorted2(data, key), способную сортировать вложенные списки, содержащие целые числа. ...

Сортировщик не сортирует
Имеется программа, которая принимает из блокнота "d.txt" 2 строки. Первая строка - кол-во элементов в массиве, вторая - элементы собсна....

Пузырьковый сортировщик массива
Я написал такой скрипт a = print("Введите количество цифр") n = input() i=0 while i < n: print("Введите элемент...

Многопоточный сортировщик (метод слияния)
Ребят помогите переделать данный код в многопотоковый. Запускаю в терминале Ubuntu, все четко выводит, теперь надо многопотоковым. Или...

Сортировщик
Всем привет ;) Писал прогу на C++ в деве (причем не особо удачно), недавно узнал, что нужно оказывается сделать эту программу с графическим...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 12.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 11.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 10.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 09.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 09.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 09.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru