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, самое время начать!

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

1
1
Начать дискуссию