💻 Рабочие примеры

⚡ Примеры в двух словах

  • Проверка типа объекта: файл, папка или не существует.
  • Получение списка файлов и папок в директории.
  • Рекурсивный поиск файлов по расширению.
  • Скрипт, который принимает директорию через аргументы командной строки.

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

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

# 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} не существует.")

Пример 2. Список файлов и папок

Выводим содержимое директории с пометками «файл» или «папка».

# list_directory.py
import os

target = input("Введите путь к директории: ")

if not os.path.isdir(target):
    print(f"Директория '{target}' не найдена.")
else:
    print(f"Содержимое '{target}':")
    for item in os.listdir(target):
        full_path = os.path.join(target, item)
        label = "📄 файл" if os.path.isfile(full_path) else "📁 папка"
        print(f"  {label}: {item}")

Пример 3. Поиск файлов по расширению

Рекурсивно ищем все файлы с заданным расширением и выводим их относительно текущей директории.

# find_by_extension.py
import os

extension = input("Введите расширение (например, .txt): ")
search_dir = input("Введите директорию для поиска: ")

if not os.path.isdir(search_dir):
    print("Указанная директория не существует.")
else:
    found = []
    for root, dirs, files in os.walk(search_dir):
        for file in files:
            if file.endswith(extension):
                found.append(os.path.join(root, file))

    if found:
        print(f"Найдено файлов с расширением '{extension}':")
        for path in found:
            print(f"  {path}")
    else:
        print("Файлы не найдены.")

Пример 4. Скрипт с аргументами командной строки

Скрипт принимает путь к директории как аргумент и выводит её содержимое.

# cli_list_dir.py
import os
import sys

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

directory = sys.argv[1]

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

print(f"Содержимое директории '{directory}':")
for item in os.listdir(directory):
    print(f"- {item}")

Запуск:

python cli_list_dir.py /home/user/documents

Пример 5. Удаление файлов по расширению

Скрипт принимает расширение через командную строку и удаляет файлы с этим расширением в текущей директории.

# delete_by_extension.py
import os
import sys

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

extension = sys.argv[1]

for file_name in os.listdir("."):
    if file_name.endswith(extension):
        os.remove(file_name)
        print(f"Удалён файл: {file_name}")

Внимание: этот пример удаляет файлы без подтверждения. Используйте его осторожно.

Пример 6. Рекурсивный обход с разделением

Показываем текущую директорию, подпапки и файлы на каждом уровне вложенности.

# walk_tree.py
import os

for root, dirs, files in os.walk("."):
    print(f"Текущая директория: {root}")
    print(f"  Поддиректории: {dirs}")
    print(f"  Файлы: {files}")
    print("-" * 40)
⚠️ Проверить по документации: примеры основаны на материалах урока. В реальных программах для удаления файлов рекомендуется добавлять подтверждение пользователя и резервные копии.