Сообщить об ошибке.

Класс pathlib.Path() и его подклассы

Классы, предоставляющие системные вызовы для объектов пути

Пути файловой системы как объекты класса pathlib.Path() являются подклассами классов pathlib.PurePath().

pathlib.Path(*pathsegments):

Класс pathlib.Path() представляет пути файловой системы, которые работают с системными вызовами и являются подклассом pathlib.PurePath. При создании экземпляра класса pathlib.Path(), происходит автоматический вызов его подкласса либо pathlib.PosixPath, либо pathlib.WindowsPath, в зависимости от операционной системы на который выполняется код.

Аргумент pathsegments представляет собой сегменты пути файловой системы. Каждый элемент сегмента пути может быть либо строкой, либо объектом, реализующим интерфейс os.PathLike, который возвращает строку.

# Код запущен на Unix
>>> import pathlib
>>> pathlib.Path('setup.py')
# PosixPath('setup.py')

# Код запущен на Windows
>>> import pathlib
>>> pathlib.Path('setup.py')
# WindowsPath('setup.py')

pathlib.PosixPath(*pathsegments):

Класс pathlib.PosixPath представляет конкретные пути файловой системы, отличные от Windows и является подклассом классов pathlib.Path и pathlib.PurePosixPath. Он вызывается автоматически при создании экземпляра класса pathlib.Path, если код выполняется в OS Linux.

Класс pathlib.PosixPath так же можно вызвать в ручную:

>>> import pathlib
>>> pathlib.PosixPath('/etc')
# PosixPath('/etc')

Аргумент pathsegments указывается аналогично классу pathlib.Path.

pathlib.WindowsPath(*pathsegments):

Класс pathlib.WindowsPath представляет конкретные пути файловой системы Windows и является подклассом классов pathlib.Path и pathlib.PurePosixPath. Он вызывается автоматически при создании экземпляра класса pathlib.Path, если код выполняется в OS Windows.

Класс pathlib.WindowsPath так же можно вызвать в ручную:

>>> import pathlib
>>> WindowsPath('c:/Program Files/')
# WindowsPath('c:/Program Files')

Аргумент pathsegments указывается аналогично классу pathlib.Path.


Внимание!. Можно создать экземпляры класса только соответствующий вашей системе. Разрешение системных вызовов на несовместимые варианты путей может привести к ошибкам или сбоям в вашем приложении:

>>> import pathlib, os
>>> os.name
# 'posix'
>>> pathlib.Path('setup.py')
# PosixPath('setup.py')
>>> pathlib.PosixPath('setup.py')
# PosixPath('setup.py')
>>> pathlib.WindowsPath('setup.py')
# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
#   File "pathlib.py", line 798, in __new__
#     % (cls.__name__,))
# NotImplementedError: cannot instantiate 'WindowsPath' on your system

Для обработки несовместимых вариантов путей, без осуществления системных вызовов смотрите класс pathlib.PurePath() и его подклассы


Поддерживаемые методы pathlib.Path() по категориям:

Так как класс pathlib.Path() наследуется от класса pathlib.PurePath(), следовательно он поддерживает все операции по манипуляции с путями файловой системы.