Описанные ниже методы позволяют получить текущий каталог или каталог пользователя, сравнивать и преобразовать путь в абсолютный. Данные методы принадлежат экземпляру, созданному из класса 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