✅ Решения заданий

⚡ Решения в двух словах

  • Задание 1: os.path.isfile / isdir + условия.
  • Задание 2: проверить аргументы, пройтись os.listdir, отфильтровать по endswith.
  • Домашние задания из LMS разобраны в отдельном разделе.

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

# task1_check_type.py
import os

path = input("Введите путь: ")

if os.path.isfile(path):
    print(f"{path} — это файл.")
elif os.path.isdir(path):
    print(f"{path} — это папка.")
else:
    print(f"{path} не существует.")

Разбор: сначала проверяем, является ли путь файлом. Если нет — проверяем, является ли директорией. Если оба условия ложны, объекта нет. Важен порядок: файл и папка — взаимоисключающие состояния, но isfile перед isdir не имеет значения, потому что одновременно оба условия не могут быть истинными.

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

# task2_files_by_extension.py
import os
import sys

if len(sys.argv) != 3:
    print("Использование: python script.py <директория> <расширение>")
    sys.exit(1)

directory = sys.argv[1]
extension = sys.argv[2]

if not os.path.isdir(directory):
    print(f"Директория '{directory}' не найдена.")
    sys.exit(1)

found = [
    file_name
    for file_name in os.listdir(directory)
    if file_name.endswith(extension)
]

if found:
    print(f"Найденные файлы в директории '{directory}':")
    print(", ".join(found))
else:
    print(f"Файлы с расширением '{extension}' не найдены.")

Разбор: sys.argv[0] — имя скрипта, поэтому пользовательские аргументы начинаются с индекса 1. Проверяем, что передано ровно три элемента. Перед чтением директории убеждаемся, что она существует. Фильтрация выполняется через генератор списка и метод строк endswith.

Домашнее задание из LMS

Полные решения задач «Список файлов и папок» и «Поиск и удаление файлов с указанным расширением» с пошаговой инструкцией по запуску в VS Code находятся в разделе 🏠 Домашнее задание.