Пример 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)
⚠️ Проверить по документации: примеры основаны на материалах урока. В реальных программах для удаления файлов рекомендуется добавлять подтверждение пользователя и резервные копии.