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

Разбираем путь: name, stem, suffix, parent

У пути, как у любого объекта, есть свои атрибуты — и они отвечают на конкретные вопросы о файле.

Разбираем путь на части

razbor_puti.py
from pathlib import Path

path = Path("/home/anna/project/data/scores.txt")

print(path.name)     # scores.txt
print(path.stem)     # scores
print(path.suffix)   # .txt
print(path.parent)   # /home/anna/project/data
/home/anna/project/data/scores.txt
parent
/home/anna/project/data
name
scores.txt
stem
scores
suffix
.txt
name = stem + suffix; parent — родительская папка.

Точка и две точки

dot_dotdot.py
from pathlib import Path

print(Path("."))
print(Path(".."))
Не увлекайтесь ../../../..
Длинные цепочки .. сложно читать и легко сломать при переносе кода в другое место. Там, где это практично, предпочитайте явную базовую папку (как BASE_DIR из раздела 15.7) вместо нескольких .. подряд.

Расширение — это соглашение, а не гарантия

Суффикс не гарантирует формат содержимого
.txt, .json, .jpg — это соглашения об имени файла, а не магическая проверка того, что внутри. Файл report.txt технически может содержать что угодно. Не проверяйте формат содержимого только по расширению имени файла.
Практика: name, stem, suffix, parent
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →