Я проверяю, существует ли каталог, но заметил, что использую os.path.exists
вместо os.path.isdir
. Оба работают нормально, но мне любопытно, каковы преимущества использования isdir
вместо них exists
.
Я проверяю, существует ли каталог, но заметил, что использую os.path.exists
вместо os.path.isdir
. Оба работают нормально, но мне любопытно, каковы преимущества использования isdir
вместо них exists
.
Ответы:
os.path.exists
также вернется, True
если есть обычный файл с таким именем.
os.path.isdir
вернется только в том True
случае, если этот путь существует и является каталогом или символической ссылкой на каталог.
os.path.isdir('.ipynb_checkpoints')
возвращаюсь к истине
Точно так же, как это звучит так: если путь существует, но является файлом, а не каталогом, isdir
вернется False
. Между тем exists
вернется True
в обоих случаях.
os.path.isdir () проверяет, существует ли путь и является ли он каталогом, и возвращает TRUE для случая.
Точно так же os.path.isfile () проверяет, существует ли путь и является ли он файлом, и возвращает TRUE для случая.
Кроме того, os.path.exists () проверяет, существует ли путь, и не заботится о том, указывает ли путь на файл или каталог, и возвращает TRUE в любом из случаев.
В большинстве случаев это одно и то же.
Но путь может существовать физически, тогда как path.exists()
возвращает False. Это тот случай, если os.stat () возвращает значение False для этого файла.
Если путь существует физически, path.isdir()
всегда будет возвращать значение True. Это не зависит от платформы.
isdir()
не могу знать, существует ли каталог.
os.path.exists (путь) Возвращает True, если путь относится к существующему пути. Существующий путь может быть обычными файлами ( http://en.wikipedia.org/wiki/Unix_file_types#Regular_file ), так и специальными файлами (например, каталогом). По сути, эта функция возвращает истину, если указанный путь существует в файловой системе в какой-либо форме (несмотря на несколько исключений, таких как неработающие символические ссылки).
os.path.isdir (path), в свою очередь, вернет true только тогда, когда путь указывает на каталог
os.path.isdir
возвращается для меня по символической ссылке.