Tres formas de comprobar la existencia de un archivo
En esta oportunidad intentare (espero lograrlo) mostrarles tres formas básicas para comprobar la existencia de un archivo, dos de ellas usa el modulo os y la otra usando la función open, aclaro que son formas básicas con las cuales podemos experimentar y jugar un poco pero no son las únicas formas de hacerlos o la forma mas correcta de usarlos, esa parte se las dejare como tarea.
Por cuestiones de no extender demasiado la lectura (me preocupo por ustedes y no los hago leer demasiado xd) voy obviar la explicación de porque nos seria útil saber si un archivo existe o no y vamos a pasar directo a mostrar las tres formas en su funcionamiento y aplicación, vamos a divertirnos un rato con Python.
1º Forma:
archivo = "/usr/bin/firefox"
def checkfile(archivo):
import os.path
if os.path.exists(archivo):
print "El fichero existe"
else:
print "El fichero no existe"
Como verán a fines prácticos mientras construimos la función agregue una variable con el archivo a detectar que lo usare en las tres formas, en el nombre de la función recuerden que podemos usar cualquier palabra mientras no usemos ninguna de las palabras reservadas por Python las cuales las podemos encontrar aquí o no sea un nombre legal en Python [ Ver mas aquí ], el argumento que toma la función es simplemente el archivo a verificar, siguiendo tenemos lo mas importante que sin esta linea el resto no puede funcionar, se trata de importar el modulo os.path y usar la función exists para comprobar la existencia del archivo, si el archivo existe la función devuelve True en caso contrario devuelve False y gracias a if podemos analizar dicha salida. El inconveniente de esta forma es que no distingue entre un fichero o una carpeta, por ejemplo si cambiáramos nuestra primer linea por:
archivo = "/usr/bin/"
Seguiría devolviendo True o verdadero, Pasemos a la segunda forma.
2º Forma:
def checkfile2(archivo):
import os.path
if os.path.isfile(archivo):
print "El fichero existe"
else:
print "El fichero no existe"
En este caso omití la variable "archivo" por lo que les mencione anteriormente (seguimos usando la misma), esta función es muy similar a la anterior, se diferencia de usar la función 'isfile' de os.path lo nos permite saber si se trata de un archivo o no supliendo con el inconveniente con que contábamos con la forma nº 1, si se trata de un archivo nos devolverá True en caso contrario devolverá False, podemos comprobarlo cambiando el valor de la variable 'archivo' por la ruta de un directorio. También podemos saber si se trata de un directorio cambiando la función 'isfile' por 'isdir' quedando así:
directorio = "/usr/bin/"
def checkfile2(directorio):
import os.path
if os.path.isdir(directorio):
print "El directorio existe"
else:
print "El directorio no existe"
Esta forma es muy similar si se trata de un directorio devuelve True y si no lo es devuelve False, ahora pasemos a la tercer y ultima forma del día de hoy.
3º Forma:
def checkfile3(archivo):
try:
fichero = open(archivo)
fichero.close()
print "El fichero existe"
except:
print "El fichero no existe"
Esta tercer y ultima forma utiliza las excepciones de Python para intentar abrir el archivo, si el archivo existe se cierra y se muestra en pantalla el texto que colocamos en la sentencia print y si dicho archivo no existe se produce un error y se ejecutara el código que hayamos colocado en except.
Eso fue todo por hoy si les quedo alguna duda pregunten, nos estaremos viendo a la vuelta de cualquier otro tutorial.
Mas información sobre el modulo os.path:
Mas información sobre os.path.exists:
Mas información sobre os.path.isfile
Mas información sobre os.path.isdir
Esto les va a ser de mucha ayuda para entender el uso excepciones y gestión de ficheros:
Podes seguirlo también acá:
http://snipplr.com/view/45002/three-ways-to-test-the-existence-of-a-file
http://codigo_python.codepad.org/UO9d7D3f