С помощью стандартной библиотеки 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.txtpath.parent- Весть путь до родительской директорииpath.stem- Возвращает название файла без расширенияfilepath.suffix- Возвращает расширение файла.md.txt.pypath.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() - Метод принимает суффикс, если суффикс у пути уже существует,
то заменяет его, если суффикса не существовало, то добавляет его, если в качестве
суффикса передана пустая строка, то удаляет уже существующий суффикс у пути.