problema con condicional

Pablo Rodríguez oinos en web.de
Sab Dic 27 19:20:47 CET 2008


Daniel Garcia Moreno wrote:
>>> [...]
>>>
>>> if os.path.exists(self.slidefile):
>>> 	os.remove(self.slidefile)
>> Esto no funciona, porque cuando evalúa os.remove, da error porque lo que 
>> tendría que borrar no existe.
> 
> si os.path.exists(self.slidefile) devuelve True es que el fichero
> existe, por lo tanto os.remove no te puede decir que no existe, puede
> fallar por permisos o por otra razón.

Gracias, Daniel, por ignorancia me he expresado mal.

Si el fichero existe, ambas expresiones funcionan correctamente.

Pero si no existe, la primera funciona devolviendo False y la segunda da 
un error porque el fichero no existe (y el error es plenamente válido).

En realidad, para evitar que eso, si es que no estoy muy perdido, habría 
que hacer:

   if os.path.exists(self.slidefile):
     try:
       os.remove(self.slidefile)
     except IError:
       pass
     print "Deleting " + self.slidefile

Esto, que para mi poca sensibilidad programadora se antoja demasiado 
compliado, para que borre un fichero si existe y que diga que lo está 
borrando (si y sólo si existe).

Gracias por la ayuda,


Pablo
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


Más información sobre la lista de distribución Python-es