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

Определение существования пути средствами pathlib

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

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

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

Содержание:


Path.exists(*, follow_symlinks=True):

Метод Path.exists() проверяет существование пути path файловой системы. Другими словами, указывает ли путь к существующему файлу или каталогу.

Этот метод обычно следует по символическим ссылкам. Для проверки существования символической ссылки, а не конечного файла, нужно добавить аргумент follow_symlinks=False (добавлен в Python 3.12).

>>> from pathlib import Path
>>> Path('.').exists()
# True
>>> Path('setup.py').exists()
# True
>>> Path('/etc').exists()
# True
>>> Path('nonexistentfile').exists()
# False

Примечание. Если путь path указывает на символическую ссылку, то метод Path.exists() возвращает информацию о том, указывает ли символическая ссылка на существующий файл или каталог.

Изменено в Python 3.12: добавлен аргумент follow_symlinks.

Path.is_dir():

Метод Path.is_dir() вернет True, если путь path указывает на каталог, или символическую ссылку, указывающую на каталог. Метод вернет False если путь указывает на файл другого типа.

Значение False также возвращается, если путь не существует или является неработающей символической ссылкой. Метод может вернуть False при отсутствии доступа к директории или символической ссылке, указывающей на директорию.

>>> from pathlib import Path
>>> Path('/some/to/directory').is_dir()
# True
>>> Path('/some/to/file.ext').is_dir()
# False
>>> Path('/some/to/symlink').is_dir()
# False

Path.is_file():

Метод Path.is_file() вернет True, если путь path указывает на файл или символическую ссылку, указывающую на обычный файл. Метод вернет False, если путь указывает на файл другого типа.

Значение False также возвращается, если путь не существует или является неработающей символической ссылкой. Метод может вернуть False при отсутствии доступа к файлу или символической ссылке, указывающей на файл.

>>> from pathlib import Path
>>> Path('/some/to/directory').is_file()
# False
>>> Path('/some/to/file.ext').is_file()
# True
>>> Path('/some/to/symlink').is_file()
# False

Path.is_junction():

Новое в версии Python 3.12.

Метод Path.is_junction() вернет True, если путь Path указывает на соединение, и значение False для любого другого типа файла.

В настоящее время только Windows поддерживает соединения.

Path.is_mount():

Метод Path.is_mount() вернет True, если путь path является точкой монтирования в файловой системе, где смонтирована другая файловая система.

В POSIX метод проверяет, находится ли родительский путь path/.. на устройстве, отличном от path или path/.. и path указывают на однy и ту же ноду i-node на одном и том же устройстве - это должно определять точки монтирования для всех вариантов Unix и POSIX.

В Windows точкой монтирования считается корневая буква диска (например, c:\), общий ресурс UNC (например, \\server\share) или подключенный каталог файловой системы.

Изменено в Python 3.12: добавлена ​​поддержка Windows.

>>> from pathlib import Path
>>> Path('/some/to/directory').is_mount()
# False
>>> Path('/some/to/mount').is_mount()
# True
>>> Path('/some/to/file.ext').is_mount()
# False

Path.is_symlink():

Метод Path.is_symlink() вернет True, если путь path указывает на символическую ссылку, иначе вернет False.

Значение False также возвращается, если путь path не существует. Метод может вернуть False при отсутствии доступа к символической ссылке.

>>> from pathlib import Path
>>> Path('/some/to/directory').is_symlink()
# False
>>> Path('/some/to/file.ext').is_symlink()
# False
>>> Path('/some/to/symlink').is_symlink()
# True

Path.is_socket():

Метод Path.is_socket() вернет True, если путь path указывает на сокет Unix или символическую ссылку, указывающую на сокет Unix. Метод вернет False, если путь указывает на файл другого типа.

Значение False также возвращается, если путь не существует или является неработающей символической ссылкой. Метод может вернуть False при отсутствии доступа к сокету Unix или символической ссылке, указывающей на сокет.

Path.is_fifo():

Метод Path.is_fifo() вернет True, если путь path указывает на FIFO или символическую ссылку, указывающую на FIFO. Метод вернет False, если путь указывает на файл другого типа.

Значение False также возвращается, если путь не существует или является неработающей символической ссылкой. Метод может вернуть False при отсутствии доступа к FIFO или символической ссылке, указывающей на FIFO.

Path.is_block_device():

Метод Path.is_block_device() вернет True, если путь path указывает на блочное устройство или символическую ссылку, указывающую на блочное устройство. Метод вернет False, если путь указывает на файл другого типа.

Значение False также возвращается, если путь не существует или является неработающей символической ссылкой. Метод может вернуть False при отсутствии доступа к блочному устройству или символической ссылке, указывающей на блочное устройство.

Path.is_char_device():

Метод Path.is_char_device() вернет True, если путь path указывает на символьное устройство или символическую ссылку, указывающую на символьное устройство. Метод вернет False, если путь указывает на файл другого типа.

Значение False также возвращается, если путь не существует или является неработающей символической ссылкой. Метод может вернуть False при отсутствии доступа к символьному устройству или символической ссылке, указывающей на символьное устройство.