Глава 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, без установки