Comprobar si un archivo o carpeta existe con Python
Muchas funciones de Python se bloquean con un error si se les proporciona una ruta que no existe. Por suerte, los objetos Path tienen métodos para comprobar si una ruta dada existe y si es un archivo o una carpeta. Suponiendo que una variable p
contiene un objeto Path, se puede esperar lo siguiente:
- Llamar a
p.exists()
devuelveTrue
si la ruta existe o devuelveFalse
si no existe. - Llamar a
p.is_file()
devuelveTrue
si la ruta existe y es un archivo, o devuelveFalse
en caso contrario. - Llamar a
p.is_dir()
devuelveTrue
si la ruta existe y es un directorio, o devuelveFalse
en caso contrario.
En mi ordenador, esto es lo que obtengo cuando pruebo estos métodos en el shell interactivo:
>>> winDir = Path('C:/Windows')
>>> notExistsDir = Path('C:/This/Folder/Does/Not/Exist')
>>> calcFile = Path('C:/Windows
/System32/calc.exe')
>>> winDir.exists()
True
>>> winDir.is_dir()
True
>>> notExistsDir.exists()
False
>>> calcFile.is_file()
True
>>> calcFile.is_dir()
False
Puede determinar si hay un DVD o un pendrive actualmente conectada al ordenador comprobando su existencia con el método exists()
. Por ejemplo, si quisiera comprobar si hay un pendrive con el volumen llamado D:\ en mi ordenador Windows, podría hacerlo con lo siguiente
>>> dDrive = Path('D:/')
>>> dDrive.exists()
False
¡Uy! Parece que me olvidé de conectar mi pendrive.
El antiguo módulo os.path
puede realizar la misma tarea con las funciones os.path.exists(path)
, os.path.isfile(path)
, y os.path.isdir(path)
, que actúan igual que sus homólogas de la función Path
. A partir de Python 3.6, estas funciones pueden aceptar objetos Path
así como cadenas de las rutas de los archivos.