Задача 120Архивация старых файловДана корневая папка с вложенными подпапками. Напишите скрипт, который:1. Найдет все файлы, которые не изменялись более 30 дней2. Создаст папку "archive" в корневой папке3. Переместит старые файлы в папку "archive", сохраняя структуру подпапок4. Запишет отчет в файл archiving_report.txtФормат отчета:"Архивировано файлов: 8Освобождено места: 4.2 МБАрхивированные файлы:- old_report.pdf (из /docs/)- backup.zip (из /backups/)- photo1.jpg (из /images/vacation/)"Структура подпапок в папке "archive" должна повторять исходную структуру.Примечание: файлы должны физически перемещаться, а не копироваться.
Занимательные задачи Python
@python_tricker
Ваша цель: решить задачу максимально изящно и просто. Предлагайте свои варианты решения в комментариях. Задачи выходят каждый день в 14.00.
Похожие каналы
Все →Последние посты
Задача 119Подсчет файлов по типам в дереве папокДана корневая папка с вложенными подпапками. Напишите скрипт, который:1. Рекурсивно обойдет все подпапки2. Подсчитает количество файлов по расширениям3. Запишет результат в файл file_stats.txtПример:Если в папках есть файлы: a.txt, b.txt, c.jpg, d.pdf, e.txtРезультат: .txt: 3 файла.jpg: 1 файл.pdf: 1 файлВсего файлов: 5Примечание: файлы без расширения не учитывать.
Задача 118Поиск самого большого файлаДана папка с файлами различных типов. Напишите скрипт, который:1. Найдет самый большой файл в папке по размеру (в байтах)2. Выведет информацию о нем: имя файла, размер в КБ, расширение3. Создаст файл largest_file.txt и запишет туда эту информациюФормат вывода в файл:"Самый большой файл: имя_файла.расширениеРазмер: 1234.56 КБ"Если несколько файлов имеют одинаковый максимальный размер,выберите первый найденный.Примечание: не рассматривайте подпапки, только файлы в текущей папке.
Задача 117Суммирование чисел из файловДана папка с текстовыми файлами. В каждом файле находятся целые числа, разделенные пробелами и переносами строк. Напишите скрипт, который:1. Прочитает все файлы с расширением .txt в папке2. Найдет сумму всех чисел из всех файлов3. Запишет результат в новый файл result.txtПример структуры:file1.txt: "10 20 30"file2.txt: "51525"file3.txt: "100 200"Результат: 10+20+30+5+15+25+100+200 = 405Файл result.txt: "405"Примечание: обрабатывайте только файлы с расширением .txt
Задача 116Чередование четных и нечетныхДан список чисел. Проверьте, чередуются ли в нем четные и нечетные числа. Список считается "чередующимся", если каждый следующий элемент имеет противоположную четность предыдущему.Примеры:[1, 2, 3, 4, 5] → True (нечетное, четное, нечетное, четное, нечетное)[2, 4, 6, 8] → False (все четные)[1, 3, 2, 4, 7] → False (1→3: оба нечетные)[10, 5, 8, 3, 2] → True (четное, нечетное, четное, нечетное, четное)[] → True (пустой список считается чередующимся)[7] → True (один элемент всегда чередуется)
Задача 115Сумма цифр числа до однозначногоДано целое положительное число. Найдите сумму его цифр. Если полученная сумма больше 9, повторяйте процесс, пока не получите однозначное число (цифру от 1 до 9).Примеры:123 → 1+2+3 = 6 → 6987 → 9+8+7 = 24 → 2+4 = 6 → 6999 → 9+9+9 = 27 → 2+7 = 9 → 938 → 3+8 = 11 → 1+1 = 2 → 2Этот процесс иногда называют "цифровым корнем" числа.
Задача 114Перестановка максимального и минимального элементовДан список чисел. Найдите в списке максимальный и минимальный элементы и поменяйте их местами. Если максимальных или минимальных элементов несколько, поменяйте местами первые из найденных.Примеры:[3, 7, 2, 8, 5] → [3, 7, 8, 2, 5] (2 и 8 поменялись)[1, 1, 4, 4, 2] → [4, 1, 4, 1, 2] (первая 1 и первая 4 поменялись)[5, 5, 5, 5] → [5, 5, 5, 5] (список не изменился)
Задача 113Проверка периодичности последовательностиДана последовательность чисел. Определите, является ли она периодической (повторяется ли некий паттерн целиком от начала до конца последовательности). Если да, найдите длину наименьшего периода.Примеры:[1, 2, 1, 2, 1, 2] → true, период 2 (паттерн [1, 2])[1, 2, 3, 1, 2, 3, 1] → true, период 3 (паттерн [1, 2, 3])[1, 2, 3, 1, 2, 4] → false (нет полного повторения паттерна)
Задача 112Валидация математического выраженияДана строка с математическим выражением, содержащим числа, операторы +-*/ и скобки. Проверьте корректность расстановки операторов: - два оператора не могут стоять подряд - после открывающей скобки не может быть оператора (кроме унарного минуса) - перед закрывающей скобкой не может быть оператора - выражение должно начинаться и заканчиваться числом или скобкойПример:"2*(3+4)-5/2" → true"2*+3" → false
Задача 111Определение типа последовательностиДан список чисел. Определите, является ли последовательность: 1) Арифметической прогрессией (постоянная разность между элементами) 2) Геометрической прогрессией (постоянное отношение между элементами) 3) Ни тем, ни другимВерните строку: "арифметическая", "геометрическая" или "нет прогрессии".Примеры:[1, 3, 5, 7, 9] → "арифметическая" (разность 2)[2, 4, 8, 16, 32] → "геометрическая" (отношение 2)[1, 2, 3, 5, 8] → "нет прогрессии"[5, 5, 5, 5, 5] → "арифметическая" (разность 0) и "геометрическая" (отношение 1)Примечание: если список подходит под оба типа, верните "арифметическая"(приоритет у арифметической прогрессии).
Задача 110Определение четверти годаДана дата в формате 'год-месяц-день'. Определите, к какой четверти года относится эта, и сколько дней осталось до конца этой четверти.Четверти года:- I: январь-март (1-3 месяц)- II: апрель-июнь (4-6 месяц)- III: июль-сентябрь (7-9 месяц)- IV: октябрь-декабрь (10-12 месяц)
Задача 109Сжатие смежных чиселДан список чисел. Замените все последовательности смежных одинаковых чисел на их количество и значение.Пример:[1, 1, 1, 2, 3, 3, 4, 4, 4, 4] → [[3, 1], [1, 2], [2, 3], [4, 4]]
Задача 108Следующий день рожденияДана дата рождения в формате 'день.месяц'. Определите, в какой день недели будет его следующий день рождения.
Задача 107Обнуление столбцаДан произвольный двухмерный список: [ [11, 12, 13, 14, 15], [21, 22, 23, 24, 25], [31, 32, 33, 34, 35], [41, 42, 43, 44, 45], [51, 52, 53, 54, 55], ]Напишите код, который будет обнулять заданный столбец:[ [11, 12, 0, 14, 15], [21, 22, 0, 24, 25], [31, 32, 0, 34, 35], [41, 42, 0, 44, 45], [51, 52, 0, 54, 55],]
Задача 106Список вторниковПолучите список дат всех ближайших 10-ти вторников в формате "год-месяц-день".