Pathlib вместо os.path

Pathlib вместо os.path

Сегодня поговорим о том, как сделать работу с путями в Python более элегантной и современной. Если вы всё ещё используете os.path, то пора двигаться вперёд!

Модуль pathlib появился в Python 3.4 и полностью изменил правила игры. Это как пересесть с древнего велосипеда на Tesla – всё те же базовые принципы, но сильно удобнее!

Почему стоит перейти на pathlib?

—Объектно-ориентированный подход вместо строковых операций

—Кроссплатформенность из коробки

—Цепочки методов, которые читаются как поэзия

—Меньше кода, больше смысла

Практические примеры:

# Старый подход с os.path

import os.path

file_path = os.path.join('data', 'users', 'config.json')

parent_dir = os.path.dirname(file_path)

file_name = os.path.basename(file_path)

# Новый подход с pathlib

from pathlib import Path

file_path = Path('data') / 'users' / 'config.json'

parent_dir = file_path.parent

file_name = file_path.name

Крутые фишки pathlib, о которых вы могли не знать:

Проверка существования файла:

path = Path('config.json')

if path.exists():

print('Файл существует!')

Создание директорий одной командой:

Path('nested/directories/structure').mkdir(parents=True, exist_ok=True)

Поиск файлов по маске (glob):

# Найти все .py файлы в текущей директории

python_files = list(Path('.').glob('*.py'))

Работа с суффиксами и расширениями:

path = Path('document.pdf')

print(path.suffix) # .pdf

print(path.stem) # document

А теперь самое вкусное – цепочки методов:

config_path = (Path.home() / 'projects' / 'app' / 'config.json')

if config_path.exists():

data = json.loads(config_path.read_text())

Pro-tip: pathlib отлично работает с контекстными менеджерами:

with Path('log.txt').open('w') as f:

f.write('Logging started')


Когда стоит использовать os.path? Практически никогда! Разве что при работе с легаси-кодом или если вам нужны какие-то очень специфические операции с путями.


В заключение: pathlib – это не просто альтернатива os.path, это следующий эволюционный шаг в работе с файловой системой в Python. Он делает код чище, понятнее и приятнее в поддержке. Если вы ещё не перешли на pathlib, самое время начать!

Ещё много полезной информации, практики и задач закинул в свой канал - клик

Лига программистов

2.1K постов11.9K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества