Я перевіряю, чи існує каталог, але я помітив, що використовую 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 (path) Повертає значення True, якщо шлях посилається на існуючий шлях. Існуючий шлях може бути звичайними файлами ( http://en.wikipedia.org/wiki/Unix_file_types#Regular_file ), а також спеціальні файли (наприклад, каталог). Отже, по суті, ця функція повертає true, якщо вказаний шлях існує у файловій системі в будь-якій формі (незважаючи на кілька винятків, таких як непрацюючі символічні посилання).
os.path.isdir (шлях), у свою чергу, поверне значення true лише тоді, коли шлях вказує на каталог
os.path.isdirповертається для мене істинним на символічному посиланні.