Если вы до сих пор пишете os.path.join(os.path.dirname(__file__), 'data', 'file.txt'), пришло время остановиться. В Python уже почти 10 лет (с версии 3.4) существует модуль pathlib, который делает работу с файловой системой интуитивно понятной, безопасной и кроссплатформенной.
Давайте разберем, почему объектно-ориентированный подход побеждает, и посмотрим на цифры.
Синтаксис: Глаза не болят
Главное преимущество — наглядность. Вместо вложенных функций мы используем оператор /. Это не просто красиво, это читается как настоящий путь в файловой системе.
Старый стиль (os.path):
import os
config_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'config', 'settings.json')Новый стиль (pathlib):
from pathlib import Path
config_path = Path(__file__).parent / 'config' / 'settings.json'Согласитесь, второй вариант сразу говорит сам за себя.
Джекпот функций «из коробки»
Path — это не просто строка. Это объект, который содержит десятки методов для любых сценариев:
- Навигация:
Path.cwd()— текущая директория,Path.home()— домашняя папка. - Проверки:
path.exists(),path.is_file(),path.is_dir(). - Операции:
path.resolve()— получить абсолютный путь,path.with_suffix('.txt')— сменить расширение,path.with_name('new.csv')— сменить имя файла. - Поиск:
path.glob('*.py')— поиск по шаблону,path.rglob('*')— рекурсивный поиск всех файлов.




