Глава 15 · Python и файлы

Практика: пути и CWD

Прежде чем двигаться к самому файлу — закрепим уверенное владение путями.

Соберём вместе всё, что мы теперь знаем о путях: абсолютные и относительные пути, CWD, pathlib.Path и разбор пути на части.

puteshestvie_po_putyam.py
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent if "__file__" in globals() else Path.cwd()
data_dir = BASE_DIR / "data"
data_dir.mkdir(exist_ok=True)

file_path = data_dir / "otchet.txt"
print("Абсолютный путь:", file_path.resolve())
print("Имя:", file_path.name, "| Расширение:", file_path.suffix)
print("Существует?", file_path.exists())
Path.resolve()
path.resolve() строит абсолютный, разрешённый вариант пути — удобно для отладки, чтобы увидеть, куда путь указывает на самом деле. Это не инструмент безопасности — не полагайтесь на него как на «санитайзер» пользовательского ввода (вернёмся к этому в разделе 15.28).
★ Базовая практика
Путь к самому себе

Выведите BASE_DIR, .parent от BASE_DIR и .parent.parent от BASE_DIR — понаблюдайте, как подниматься по дереву папок.

★★ Самостоятельная задача
Проверка перед чтением

Постройте путь к несуществующему файлу в data/ и, используя .exists(), выведите одно из двух сообщений: «файл найден» или «файла нет — сначала создайте его».

Практика: пути и CWD — итоговая тренировка
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →