Пути файловой системы как объекты класса pathlib.Path()
являются подклассами классов pathlib.PurePath()
.
pathlib.Path
.pathlib.PosixPath
.pathlib.WindowsPath
.pathlib.Path
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()
, следовательно он поддерживает все операции по манипуляции с путями файловой системы.