Skip to content

Latest commit

 

History

History
64 lines (50 loc) · 3.5 KB

File metadata and controls

64 lines (50 loc) · 3.5 KB

Модуль pathlib

С помощью стандартной библиотеки os.path можно управлять путями, но этот модуль неудобен в использовании, гораздо удобнее использовать модул pathlib

Методы:

  • Path.cwd() - Получить текущую директорию, в которой запущен скрипт
  • Path.home() - Получить домашнюю директорию
  • Path.is_dir() - Проверка директории на существование
  • Path.rmdir() - Удаление директории
  • Path.glob(pattern) - Получить файлы по паттерну
  • Path.mkdir() - Создает директорию
  • Path.rename() - Переименует файл или директорию
  • Path.rmdir() - Удаляет директорию
  • Path.unlink() - Удаляет файл
  • Path.open() - Открывает файл
  • Path.with_suffix('.txt') - Возвращает путь полный путь, с другим суффиксом

Получение информации о путях:

  • path.parts - Кортеж из частей пути до нужного файла
  • path.name - Возвращает название файла с расширением file.txt
  • path.parent - Весть путь до родительской директории
  • path.stem - Возвращает название файла без расширения file
  • path.suffix - Возвращает расширение файла .md .txt .py
  • path.anchor - Разделитель который используется в данной ОС
  • path.match - Проверяет, совпадает ли название файла с переданным паттерном

Добавлять пути, переходить в директории, и обращаться к нужным файлам, можно удобным способом, через указание символа /, все создаваемые пути будут кроссплатформенны, как если бы мы использовали os.path.join()

Находим файл с именем workdir/file.txt относительно текущего пути.

from pathlib import Path

outpath = Path.cwd() / 'workdir' / 'file.txt'

Удобное совмещение контекста временной директории и удобной работы с путями pathlib:

from pathlib import Path
import tempfile

with tempfile.TemporaryDirectory(prefix='tmp_') as work_dir:
    workdir = Path(work_dir)

В данном примере, когда нам требуется манипулировать временными данными, мы можем использовать контекст tempfile, и удобную работу с путями от pathlib, удобная и красивая комбинация.


Path.with_suffix() - Метод принимает суффикс, если суффикс у пути уже существует, то заменяет его, если суффикса не существовало, то добавляет его, если в качестве суффикса передана пустая строка, то удаляет уже существующий суффикс у пути.