Перейти к содержанию

Работа с путями и файловой системой

Начало урока

Работа с путями и файловой системой

Строим, разбираем и обходим пути к файлам переносимо с помощью pathlib и os

Главная идея: В начальном курсе вы открывали файл, жёстко прописывая его имя. Реальные программы редко знают точный путь заранее: они собирают его из частей, проверяют существование, перечисляют содержимое папки и обходят целые деревья каталогов. Современный инструмент Python для этого - pathlib.Path: объект, который относится к пути как к структурированным данным, а не как к хрупкой строке. Старый модуль os по-прежнему закрывает несколько пробелов, поэтому вы встретите оба.
К концу вы сможете:
  • объяснить, почему склейка путей через "+" и "/" ломается на разных операционных системах,
  • безопасно строить пути с помощью Path и оператора /,
  • разбирать путь на части: .name, .stem, .suffix, .parent и .parts,
  • проверять существование и тип через .exists(), .is_file(), .is_dir(),
  • создавать папки с .mkdir(parents=True, exist_ok=True),
  • перечислять и фильтровать содержимое каталога с .iterdir(), .glob() и .rglob(),
  • обойти всё дерево папок и понимать, когда лучше взять os.

1. Проблема: путь - это не просто строка

Путь выглядит как обычная строка, поэтому первый соблазн - склеить куски через +:

folder = "data"
name = "report.txt"
path = folder + "/" + name      # "data/report.txt" - хрупко!

Это работает по удаче, а не по замыслу. Внутри прячутся две реальные проблемы:

  • Разделители различаются. Linux и macOS разделяют папки прямым слэшем /; Windows использует обратный слэш \. Жёстко прописав один, вы ломаете другую машину.
  • Копятся крайние случаи. А заканчивается ли folder уже слэшем? Не пуста ли часть? Строковая арифметика заставляет обрабатывать каждый случай вручную, и один пропуск портит путь.

pathlib решает это, делая путь объектом, который умеет правильно соединять, разбивать и сравнивать себя на любой операционной системе, где он запущен.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя