📝 Python

pathlib: работа с путями в Python

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
103
🌿
Уровень
Средний
🐦 💼 ✈️

pathlib — современный способ работы с путями файловой системы вместо строк.

Создание пути

from pathlib import Path

# Текущая директория
cwd = Path.cwd()

# Домашняя директория
home = Path.home()

# Из строки
p = Path('/Users/dmitrii/projects/myapp')
p = Path('src/tasks/models.py')

# BASE_DIR в Django
BASE_DIR = Path(__file__).resolve().parent.parent

Навигация по файловой системе

p = Path('/home/user/projects/myapp/src/models.py')

p.name           # 'models.py'
p.stem           # 'models'
p.suffix         # '.py'
p.parent         # /home/user/projects/myapp/src
p.parents[0]     # /home/user/projects/myapp/src
p.parents[1]     # /home/user/projects/myapp

# Объединение путей
data = BASE_DIR / 'data' / 'output.csv'

Чтение и запись

p = Path('data.txt')

# Чтение
text = p.read_text(encoding='utf-8')
data = p.read_bytes()

# Запись
p.write_text('Hello, World!', encoding='utf-8')
p.write_bytes(b'\x00\x01')

Проверки

p = Path('config.json')

p.exists()       # существует?
p.is_file()      # это файл?
p.is_dir()       # это директория?
p.is_absolute()  # абсолютный путь?

Создание и удаление

# Создать директорию
Path('logs').mkdir(exist_ok=True)
Path('a/b/c').mkdir(parents=True, exist_ok=True)

# Удалить файл
Path('temp.txt').unlink(missing_ok=True)

# Удалить пустую директорию
Path('empty_dir').rmdir()

Обход директории

# Все файлы
for f in Path('src').iterdir():
    print(f)

# По паттерну
for py_file in Path('src').glob('**/*.py'):
    print(py_file)

# Все Python файлы рекурсивно
list(Path('.').rglob('*.py'))

Конвертация

p = Path('/home/user/file.txt')
str(p)          # '/home/user/file.txt'
p.as_posix()    # '/home/user/file.txt'

# В os.path
import os
os.path.exists(p)  # Path работает везде где нужна строка

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

Event loop в Python: как asyncio делает «параллел…

Event loop — сердце asyncio. Он не запускает код параллельно в нескольких потоках. Он переключается...

📅 30.06.2026 👁️ 120
📝

pytest-django: тестирование Django

Охватываемые темы: Установка, @pytest.mark.djangodb, Фикстуры, Тестирование views.

📅 30.06.2026 👁️ 130
📝

pip: менеджер пакетов Python

Охватываемые темы: Установка пакетов, Обновление и удаление, requirements.txt, Виртуальное окружение.

📅 30.06.2026 👁️ 117

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!