Estoy verificando si existe un directorio, pero noté que estoy usando en os.path.exists
lugar de os.path.isdir
. Ambos funcionan bien, pero tengo curiosidad por saber cuáles son las ventajas de usar en isdir
lugar de exists
.
Estoy verificando si existe un directorio, pero noté que estoy usando en os.path.exists
lugar de os.path.isdir
. Ambos funcionan bien, pero tengo curiosidad por saber cuáles son las ventajas de usar en isdir
lugar de exists
.
Respuestas:
os.path.exists
también regresará True
si hay un archivo normal con ese nombre.
os.path.isdir
solo regresará True
si esa ruta existe y es un directorio, o un enlace simbólico a un directorio.
os.path.isdir('.ipynb_checkpoints')
regresando de verdad
Al igual que suena así: si la ruta existe, pero es un archivo y no un directorio, isdir
regresará False
. Mientras tanto, exists
volverá True
en ambos casos.
os.path.isdir () comprueba si la ruta existe y es un directorio y devuelve TRUE para el caso.
De manera similar, os.path.isfile () comprueba si la ruta existe y es un archivo y devuelve TRUE para el caso.
Y os.path.exists () comprueba si la ruta existe y no le importa si la ruta apunta a un archivo o directorio y devuelve TRUE en cualquiera de los casos.
La mayoría de las veces es lo mismo.
Pero, la ruta puede existir físicamente mientras que path.exists()
devuelve False. Este es el caso si os.stat () devuelve False para este archivo.
Si la ruta existe físicamente, path.isdir()
siempre devolverá True. Esto no depende de la plataforma.
isdir()
no puedo saber si el directorio existe.
os.path.exists (ruta) Devuelve Verdadero si la ruta se refiere a una ruta existente. Una ruta existente puede ser archivos normales ( http://en.wikipedia.org/wiki/Unix_file_types#Regular_file ), pero también archivos especiales (por ejemplo, un directorio). Entonces, en esencia, esta función devuelve verdadero si la ruta proporcionada existe en el sistema de archivos en cualquier forma (a pesar de algunas excepciones, como enlaces simbólicos rotos).
os.path.isdir (ruta) a su vez solo devolverá verdadero cuando la ruta apunte a un directorio
os.path.isdir
está volviendo verdadero para mí en un enlace simbólico.