Описанные ниже методы позволяют получить текущий каталог или каталог пользователя, сравнивать и преобразовать путь в абсолютный. Данные методы принадлежат экземпляру, созданному из класса Path()
.
Так как класс pathlib.Path()
наследуется от класса pathlib.PurePath()
, следовательно, он поддерживает все операции по манипуляции с путями файловой системы.
Смотрите другие методы и свойства, доступные экземпляру класса Path()
модуля pathlib
.
'~'
и '~user'
,Path.cwd()
:Метод Path.cwd()
вернет новый объект пути path
, представляющий текущий каталог, как это делает функция os.getcwd()
:
>>> from pathlib import Path
>>> Path.cwd()
# PosixPath('/home/antoine/pathlib')
Path.home()
:Метод Path.home()
вернет новый объект пути path
, представляющий домашний каталог пользователя, как это делает функция os.path.expanduser()
:
>>> from pathlib import Path
>>> Path.home()
# PosixPath('/home/antoine')
Path.expanduser()
:Метод Path.expanduser()
вернет объект абсолютного пути path
с замененными пользовательскими конструкциями, такими как '~'
и '~user'
, так же как это делает функция os.path.expanduser()
:
>>> from pathlib import Path
>>> p = Path('~/films/Monty Python')
>>> p
# PosixPath('~/films/Monty Python')
>>> p.expanduser()
# PosixPath('/home/eric/films/Monty Python')
Path.resolve(strict=False)
:Метод Path.resolve()
делает путь path
абсолютным, разрешив любые символические ссылки. Вернет новый объект пути pathlib.PurePath()
:
>>> from pathlib import Path
>>> p = Path()
>>> p
# PosixPath('.')
>>> p.resolve()
# PosixPath('/home/antoine/pathlib')
Компоненты пути такие как '..'
также устраняются, это единственный способ сделать это:
>>> from pathlib import Path
>>> p = Path('docs/../setup.py')
>>> p.resolve()
# PosixPath('/home/antoine/pathlib/setup.py')
strict
установлено значение True
, вызывается исключение FileNotFoundError
. strict=False
, то путь разрешается насколько это возможно и любой остаток добавляется без проверки его существования. Если вдоль пути разрешения встречается бесконечный цикл, вызывается исключение RuntimeError
.Path.samefile(other_path)
:Метод Path.samefile()
вернет True
, если путь path
указывает на тот же файл, что и аргумент other_path
, который может быть либо объектом pathlib.Path
, либо строкой. Семантика похожа на функции os.path.samefile()
и os.path.samestat()
.
Если какой-либо файл не доступен по какой-либо причине, то может быть вызвана ошибка OSError
.
>>> from pathlib import Path
>>> p = Path('spam')
>>> q = Path('eggs')
>>> p.samefile(q)
# False
>>> p.samefile('spam')
# True