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