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 ejercicio 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 desdoblar demasiado la lectura (me preocupo por ustedes y no los hago leer demasiado xd) voy obviar la explicación de porque nos seria beneficioso conocer 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 ejercicio agregue una variable con el archivo a recibir que lo usare en las tres formas, en el nombre de la ejercicio recuerden que podemos emplear cualquier palabra mientras no usemos ninguna de las palabras reservadas por Python las cuales las podemos encontrar aquí o no sea un nombre justo en Python [Ver mas aquí], el argumento que toma la ejercicio es simplemente el archivo a verificar, siguiendo tenemos lo mas importante que sin esta linea el despojo no puede funcionar, se trata de importar el modulo os.path y emplear la ejercicio exists para comprobar la existencia del archivo, si el archivo existe la ejercicio devuelve True en acontecimiento contrario devuelve False y gracias a if podemos analizar felicidad 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 acontecimiento omití la variable «archivo» por lo que les mencione anteriormente (seguimos usando la misma), esta ejercicio es muy análogo a la anterior, se diferencia de emplear la ejercicio ‘isfile’ de os.path lo nos permite conocer 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 acontecimiento contrario devolverá False, podemos comprobarlo cambiando el importe de la variable ‘archivo’ por la curso de un directorio. También podemos conocer si se trata de un directorio cambiando la ejercicio ‘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 análogo 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 juicio 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:
http://docs.python.org/library/os.path.html
Mas información sobre os.path.exists:
http://docs.python.org/library/os.path.html#os.path.exists
Mas información sobre os.path.isfile
http://docs.python.org/library/os.path.html#os.path.isfile
Mas información sobre os.path.isdir
http://docs.python.org/library/os.path.html#os.path.isdir
Esto les va a existir de mucha ayuda para entender el uso excepciones y gestión de ficheros:
http://www.gulic.org/almacen/diveintopython-5.4-es/file_handling/index.html
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
Fuentes de Información
Codigo Python » Tres formas de comprobar la existencia de un archivo