8 formas de verificar si existe un archivo usando Python
La dependencia de Python de los archivos externos es un aspecto crucial, es aconsejable prestar atención a los archivos base / fuente antes de ejecutar cualquier código. Antes de ejecutar un programa en particular, debe asegurarse de que sus archivos de origen existan en la ubicación especificada.
Todos los desarrolladores comprenden la necesidad de crear códigos alternativos, que pueden evitar que un programa falle en caso de que no se cumpla una condición. En Python, hay varias formas de comprobar si existe un archivo; Estos son los métodos principales que debe conocer.
1. Prueba y excepto declaraciones
La instrucción try y except comprueba un comando y produce una salida. En el código siguiente, la instrucción try intentará abrir un archivo ( testfile.txt ). Si el procesador de Python puede localizar el archivo, lo abrirá e imprimirá el resultado. El archivo está abierto y disponible para su uso .
try:
f = open('testfile.txt')
print("File is available for use")
f.close()
except IOError:
print('File is not accessible')
Si encuentra un error, imprimirá el resultado. El archivo no es accesible . Una vez que se compila y ejecuta el código completo, cerrará el archivo abierto si se abrió.
La dependencia de Python de los archivos externos es un aspecto crucial, y debe prestar atención a los archivos base / fuente antes de ejecutar cualquier código.
Antes de ejecutar un programa en particular, asegúrese de que sus archivos de origen existan en la ubicación específica.
2. Os.path.isfile (ruta)
Python tiene un sistema operativo de módulo incorporado al que se puede recurrir para interactuar con los archivos, carpetas y directorios subyacentes. El método os.path.isfile () de Python se puede usar para verificar un directorio y si existe un archivo específico.
El primer paso es importar la función incorporada usando la biblioteca import os.path . El siguiente comando verifica si el archivo existe en la ubicación específica.
import os.path
os.path.isfile(r"C:UsersWini BhallaDesktopPython test file.txt")
La salida devuelve True , ya que el archivo existe en la ubicación específica. Si el archivo no existe, Python devolverá False .
3. Os.path.exists (ruta)
Por motivos similares, la declaración de la biblioteca de importación del sistema operativo se puede utilizar para comprobar si el directorio existe en su sistema.
La sintaxis es bastante simple:
Import os.path
os.path.exists(r"C:UsersWini BhallaDesktoptest")
Al igual que en el paso anterior, si el directorio / carpeta se encuentra en la ruta del sistema especificada, Python devuelve Verdadero y, posteriormente, Falso , si no se encuentra el directorio / carpeta.
4. Os.Path.Isdir (ruta)
Al igual que os.path.isfile y os.path.exists () , os.path.isdir () es una subfunción de la biblioteca os. La única diferencia aquí es que este comando solo funciona para directorios. Como era de esperar, el uso de esta sintaxis devuelve un valor booleano basado en la existencia de directorios.
Por ejemplo:
import os
os.path.isdir(r"C:UsersWini BhallaDesktopOS")
El resultado es Verdadero , ya que la carpeta / directorio existe en la ruta especificada.
import os
os.path.isdir(r"C:UsersWini BhallaDesktoptestdirectory")
El resultado es Falso , ya que la carpeta / directorio no existe en la ruta especificada.
5. Pathlib.path.exists ()
Python 3.4 y versiones superiores ofrecen el módulo Pathlib , que se puede importar mediante la función de importación . Pathlib captura las funcionalidades necesarias en un solo lugar y las pone a disposición a través de varios métodos para usar con el objeto de ruta.
Para usar Pathlib:
import pathlib
file = pathlib.Path(r"C:UsersWini BhallaDesktopPython test file.txt")
if file.exists ():
print ("File exists")
else:
print ("File does not exist")
Según la existencia del archivo, la salida mostrará si el archivo existe o no en la ruta especificada. Idealmente, el código en la declaración de impresión se puede cambiar, según los requisitos de su programa
6. Os.listdir (ruta)
El método listdir en Python devuelve una lista de todos los archivos en un directorio específico, según lo especificado por el usuario. Sin embargo, este método no devolverá ningún archivo existente en subcarpetas.
El método listdir solo acepta un parámetro, la ruta del archivo. Idealmente, la ruta del archivo serán los nombres de archivo y carpeta que le gustaría recuperar.
La sintaxis básica incluye:
os.listdir(path)
En el siguiente ejemplo, puede crear un bucle para revisar todos los archivos enumerados en el directorio y luego verificar la existencia del archivo especificado declarado con la instrucción if .
import os
path = r'C:UsersWini BhallaDesktop'
files = os.listdir(path)
print (files)
Este código imprimirá la lista de archivos disponibles en el directorio actual.
import os
path = r'C:UsersWini BhallaDesktop' files = os.listdir(path)
for f in files:
if f == "test.txt":
print("File exists")
else:
print("File does not exist")
Más adelante, cuando se ejecuta el ciclo, la función listdir junto con la lógica de la instrucción if recorrerá la lista de archivos e imprimirá los resultados, dependiendo de las condiciones pasadas dentro de la instrucción de impresión .
7. Módulo Glob
El módulo glob hace coincidir todos los nombres de ruta con los parámetros especificados y, de manera sucinta, le permite acceder al sistema de archivos. Dado que glob se usa para la coincidencia de patrones, puede usarlo para verificar el estado de un archivo.
Hay dos referencias de la ruta:
- Ruta absoluta: utilícela cuando desee buscar un archivo en un directorio diferente.
- Ruta relativa: utilice esta opción cuando desee buscar un archivo en el directorio actual .
Si se encuentra el archivo, el código devolverá True ; de lo contrario, devolverá False .
Un ejemplo del uso de Glob:
import glob
if glob.glob(r"C:UsersWini BhallaDesktoptest.txt"):
print ("File exist")
else:
print("File does not exist")
La salida de este código imprimirá el resultado, si se encuentra el archivo.
8. Subproceso
El comando de prueba en el módulo de subproceso es una forma eficiente de probar la existencia de archivos y directorios. Los comandos de prueba solo funcionan en máquinas basadas en Unix y no en máquinas con sistema operativo basado en Windows.
Puede utilizar los siguientes comandos según sus necesidades:
- test -e: Verifica la existencia de una ruta
- test -f: Verifica la existencia de un archivo
- test-d: comprobar la existencia de una carpeta
Verificación de una ruta con subproceso:
from subprocess import run
run(['test', '-e', 'testfile.txt']).returncode == 0
run(['test', '-e', 'im-not-here.txt']).returncode == 0
Este código llamó a la función de prueba seguida de '-e' para verificar la existencia de una ruta. La función muestra False para una ruta no válida.
Verificación de un archivo con subproceso:
run(['test', '-f', 'testfile.txt']).returncode == 0
run(['test', '-f', 'testdirectory']).returncode == 0
La función '-f' prueba la existencia de un archivo y devuelve False para un directorio.
Verificación de un directorio con subproceso:
run(['test', '-d', 'testfile.txt']).returncode == 0
run(['test', '-d', 'testdirectory']).returncode == 0
La función '-d' prueba la existencia de un directorio y devuelve False para cualquier consulta de archivo en el comando de prueba.
¿Qué comando utilizará para localizar sus archivos?
Python es un lenguaje relativamente fácil de usar y ofrece muchas opciones a los usuarios finales. Para verificar la existencia de un archivo (s), puede utilizar cualquiera de los procedimientos enumerados anteriormente.
Sin embargo, si eres un principiante, siempre hay formas de aprender Python. Dado que Python es un lenguaje extenso, es mejor dedicar un tiempo a comprender los diferentes matices y su gama de comandos.