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() devuelve True si la ruta existe o devuelve False si no existe.
  • Llamar a p.is_file() devuelve True si la ruta existe y es un archivo, o devuelve False en caso contrario.
  • Llamar a p.is_dir() devuelve True si la ruta existe y es un directorio, o devuelve False 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.

Deja una respuesta