Cómo comprobar si existe un archivo o carpeta con Python

1 mar 2021 3 min di lettura
Cómo comprobar si existe un archivo o carpeta con Python
Indice dei contenuti

Introducción

Al escribir scripts de Python, es posible que desee realizar una determinada acción solo si existe un archivo o directorio. Por ejemplo, es posible que desee leer o escribir datos en un archivo de configuración o crear el archivo solo si aún no existe.

En Python, hay muchas formas diferentes de verificar la existencia de un archivo y determinar el tipo de archivo.

En este tutorial, le mostraremos tres técnicas diferentes sobre cómo verificar la existencia de un archivo.

Compruebe si el archivo existe

La forma más sencilla de comprobar si existe un archivo es intentar abrirlo. Este enfoque no requiere importar ningún módulo y funciona con Python 2 y 3. Utilice este método si desea abrir el archivo y realizar algunas acciones.

El siguiente fragmento utiliza un bloque simple try-except. Estamos intentando abrir el archivo filename.txt y si el archivo no existe, IOError y se imprime el mensaje "Archivo no accesible":

try:
 f = open("filename.txt")
 # Do something with the file
 except IOError:
 print("File not accessible")
 finally:
 f.close()

Si está usando Python 3, también puede usar FileNotFoundError IOError de la excepción.

Al abrir archivos, se recomienda que utilice la with, que garantiza que el archivo se cierre correctamente después de que se completen las operaciones de archivo, incluso si se genera una excepción durante la operación. También reduce el código porque no es necesario cerrar el archivo usando la función de close

El siguiente código es equivalente al ejemplo anterior:

try:
 with open('/etc/hosts') as f:
 print(f.readlines())
 # Do something with the file
 except IOError:
 print("File not accessible")

En los ejemplos anteriores, estábamos usando el bloque try-except y abriendo el archivo para evitar condiciones de carrera. Las condiciones de carrera ocurren cuando tiene más de un proceso accediendo al mismo archivo.

Por ejemplo, al verificar la existencia de un archivo, otro proceso puede crear, eliminar o bloquear el archivo en el intervalo de tiempo entre la verificación y la apertura del archivo. Esto podría hacer que el código se rompa.

Verifique si el archivo existe usando el módulo os.path

El os.path proporciona algunas funciones útiles para trabajar con nombres de ruta. El módulo está disponible para Python 2 y 3.

En el contexto de este tutorial, las funciones más importantes son:

  • os.path.exists(path): devuelve verdadero si la path es un archivo, directorio o enlace simbólico válido.
  • os.path.isfile(path): devuelve verdadero si la path es un archivo normal o un enlace simbólico a un archivo.
  • os.path.isdir(path): devuelve verdadero si la path es un directorio o un enlace simbólico a un directorio.

El siguiente código verificará si el archivo existe filename.txt:

import os.path

 if os.path.isfile('filename.txt'):
 print ("File exist")
 else:
 print ("File not exist")

Utilice este método si solo desea verificar si el archivo existe o no. Si desea realizar una acción en el archivo, prefiera utilizar el método anterior.

Verifique si el archivo existe usando el módulo pathlib

El pathlib está disponible en Python 3.4 y versiones posteriores. Este módulo proporciona una interfaz orientada a objetos para trabajar con rutas de sistema de archivos para diferentes sistemas operativos.

Como en el ejemplo anterior, el siguiente código verifica si existe el archivo filename.txt

from pathlib import Path

 if Path('filename.txt').is_file():
 print ("File exist")
 else:
 print ("File not exist")

is_file devuelve verdadero si la path es un archivo normal o un enlace simbólico a un archivo. Para verificar la existencia de un directorio, use el método is_dir

La principal diferencia entre pathlib y os.path es que pathlib permite trabajar con rutas como Path con métodos y atributos relevantes en lugar de objetos str

Si desea utilizar este módulo en Python 2, puede instalarlo con pip:

pip install pathlib2

Conclusión

En esta guía, le mostramos cómo verificar si existe un archivo o directorio usando Python.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.