Плюсы и минусы между os.path.exists и os.path.isdir

Я проверяю, существует ли каталог, но я заметил, что использую os.path.exists вместо os.path.isdir. Оба работают просто отлично, но мне любопытно, каковы преимущества использования isdir вместо exists.

Ответ 1

os.path.exists также вернет True, если есть обычный файл с этим именем.

os.path.isdir возвращает только True, если этот путь существует и является каталогом.

Ответ 2

Так же, как это выглядит: если путь существует, но является файлом, а не каталогом, isdir вернет False. Между тем, exists вернет True в обоих случаях.

Ответ 3

os.path.isdir() проверяет, существует ли путь и является ли он каталогом, и возвращает TRUE для случая.

Аналогично, os.path.isfile() проверяет, существует ли путь и является ли он файлом, и возвращает TRUE для случая.

И os.path.exists() проверяет, существует ли путь, и не заботится о том, указывает ли путь к файлу или каталогу, и возвращает TRUE в любом из случаев.

Ответ 4

В большинстве случаев это то же самое.

Но путь может существовать физически, тогда как path.exists() возвращает False. Это так, если os.stat() возвращает False для этого файла.

Если путь существует физически, то path.isdir() всегда будет возвращать True. Это не зависит от платформы.

Ответ 5

os.path.exists(путь) Возвращает True, если путь относится к существующему пути. Существующий путь может быть обычными файлами (http://en.wikipedia.org/wiki/Unix_file_types#Regular_file), но также специальные файлы (например, каталог). Таким образом, по существу эта функция возвращает true, если указанный путь существует в файловой системе в любой форме (несмотря на несколько исключений, таких как сломанные символические ссылки).

os.path.isdir(путь) в свою очередь, вернет true только тогда, когда путь указывает на каталог