Манипуляции с путями
Объединяйте, разрешайте и анализируйте пути
«Манипуляции с путями» — бесплатный урок Python Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.
Просмотр и преобразование путей
Помимо создания путей, pathlib позволяет преобразовывать их в абсолютный вид, проверять отношения между ними и читать метаданные файловой системы — и всё это без обращения к os.path.
Абсолютные и относительные пути
is_absolute() сообщает, начинается ли путь от корня. Относительные пути интерпретируются относительно текущего каталога.
from pathlib import Path
print(Path('docs/file.txt').is_absolute())
print(Path('/usr/local').is_absolute())Разрешение пути
resolve() преобразует путь в абсолютный и сворачивает сегменты . и ... Это основной метод для нормализации путей.
from pathlib import Path
p = Path('a/b/../c/file.txt')
print(p.resolve())Объединение с помощью joinpath
Помимо оператора /, метод joinpath() добавляет один или несколько компонентов. Он особенно удобен, когда компоненты получены из списка.
from pathlib import Path
base = Path('project')
parts = ['src', 'main', 'app.py']
print(base.joinpath(*parts))Относительный путь между двумя местоположениями
relative_to() вычисляет путь одного местоположения относительно другого. Метод вызывает исключение, если путь не находится внутри указанной основы.
from pathlib import Path
full = Path('/home/user/docs/report.txt')
rel = full.relative_to('/home/user')
print(rel)Проверка префикса с помощью is_relative_to
is_relative_to() безопасно проверяет, находится ли один путь внутри другого, возвращая логическое значение вместо вызова исключения.
from pathlib import Path
p = Path('/home/user/docs/file.txt')
print(p.is_relative_to('/home/user'))
print(p.is_relative_to('/etc'))Несколько расширений
Для имён вроде archive.tar.gz свойство suffixes перечисляет все расширения, а suffix возвращает только последнее.
from pathlib import Path
p = Path('archive.tar.gz')
print(p.suffix)
print(p.suffixes)Якорь и диск
Свойство anchor — корневая часть пути. В POSIX это обычно /, а в Windows оно включает букву диска.
from pathlib import Path
p = Path('/usr/local/bin')
print('anchor:', p.anchor)
print('parts:', p.parts)Чтение метаданных файла
stat() возвращает метаданные файловой системы, например размер в байтах. Здесь мы создаём файл и считываем его размер.
from pathlib import Path
p = Path('meta.txt')
p.write_text('hello world')
print('size:', p.stat().st_size, 'bytes')Переименование и перемещение
rename() изменяет местоположение или имя пути. В сочетании с методами построения путей этот метод позволяет кратко реорганизовывать файлы.
from pathlib import Path
old = Path('old_name.txt')
old.write_text('data')
new = old.with_name('new_name.txt')
old.rename(new)
print(new.exists(), new.read_text())Разворачивание сокращения домашнего каталога
expanduser() заменяет начальный символ ~ домашним каталогом пользователя, подобно тому как это делает оболочка.
from pathlib import Path
p = Path('~/configs/app.ini')
expanded = p.expanduser()
print(expanded.is_absolute())Быстрая проверка
Что делает метод resolve() с путём?
Итоги
Вы научились объединять, разрешать и просматривать пути.
resolveсоздаёт абсолютный нормализованный путь.relative_toиis_relative_toсравнивают местоположения.suffix,suffixes,anchorиpartsпоказывают структуру пути.statсчитывает метаданные, аrenameперемещает файлы.
Часто задаваемые вопросы
Урок «Манипуляции с путями» бесплатный?
Да — полный текст урока «Манипуляции с путями» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.
Чему я научусь в уроке «Манипуляции с путями»?
Объединяйте, разрешайте и анализируйте пути Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Python Academy?
Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Манипуляции с путями»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Python Academy?
Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Объект Path
- Чтение и запись файлов
- Поиск по шаблонам и итерация
- Манипуляции с путями