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

Определение положения в файловой системе средствами pathlib

Определить текущий каталог или каталог пользователя

Описанные ниже методы позволяют получить текущий каталог или каталог пользователя, сравнивать и преобразовать путь в абсолютный. Данные методы принадлежат экземпляру, созданному из класса Path().

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

Смотрите другие методы и свойства, доступные экземпляру класса Path() модуля pathlib.

Содержание:


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