📝 Практические задания

⚡ Задания в двух словах

  • Задание 1 — определить, является ли введённый путь файлом, папкой или не существует.
  • Задание 2 — найти файлы с заданным расширением в указанной директории через аргументы командной строки.
  • Задание 3 (LMS) — вывести список папок и файлов директории из аргумента командной строки.
  • Задание 4 (LMS) — рекурсивно найти и при подтверждении удалить файлы с заданным расширением.

🏋️ Раздел тренировки

Выполните задания в отдельных файлах. Используйте os.path для проверок и os.path.join для сборки путей.

Цель: научиться определять тип объекта по пути, обходить директории и передавать параметры скрипту через sys.argv.

Задание 1. Определение типа объекта

Условие: напишите программу, которая запрашивает у пользователя путь и определяет, является ли он файлом, папкой или он не существует.

Пример ввода:

Введите путь: example.txt

Пример вывода:

example.txt — это файл.

Подсказка: используйте os.path.isfile и os.path.isdir.

Задание 2. Файлы с заданным расширением

Условие: напишите программу, которая принимает путь к директории и расширение файлов через аргументы командной строки, ищет файлы с указанным расширением в указанной директории и выводит их список.

Пример запуска:

python script.py /home/user/projects .py

Пример вывода:

Найденные файлы в директории '/home/user/projects':
script.py, test.py, main.py

Подсказка: проверьте len(sys.argv), убедитесь, что директория существует, и используйте os.listdir с фильтром по окончанию имени файла.

🏠 Задания из LMS

Задание 3. Список файлов и папок

Условие: напишите программу, которая принимает путь к директории через аргумент командной строки и выводит отдельно список папок и отдельно список файлов.

Пример запуска:

python script.py /home/user/documents

Пример вывода:

Содержимое директории '/home/user/documents':
Папки:
- folder1
- folder2
Файлы:
- file1.txt
- file2.txt
- notes.docx

Задание 4. Поиск и удаление файлов с указанным расширением

Условие: напишите программу, которая:

  • принимает путь к директории и расширение файлов через аргументы командной строки;
  • рекурсивно ищет файлы с этим расширением во всех вложенных папках;
  • спрашивает у пользователя, хочет ли он удалить найденные файлы;
  • если пользователь подтверждает, удаляет их.

Пример запуска:

python script.py /home/user/PycharmProjects/project1 .log

Пример вывода:

Найдены файлы с расширением '.log':
- logs/error.log
- logs/system.log
- logs/backup/old.log
- logs/backup/debug.log
Вы хотите удалить эти файлы? (y/n): y
Удаление завершено.
⚠️ Проверить по документации: задания 3 и 4 взяты из LMS. Их пошаговые решения и инструкции по запуску в VS Code приведены в разделе Домашнее задание.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Какой стиль имён переменных обычно рекомендует PEP 8?

Вопрос 2

Зачем использовать f-strings в современном Python?

Вопрос 3

Когда полезен ранний возврат из функции?

Вопрос 4

Что делает аннотация типа в Python?

Вопрос 5

Как лучше обрабатывать ожидаемую ошибку преобразования?

Вопрос 6

Чем отличается = от ==?

Вопрос 7

Что делает print()?