[Python] Dilema con try

Iniciado por Arnau27, 30 Septiembre 2013, 23:41 PM

0 Miembros y 1 Visitante están viendo este tema.

Arnau27

Buenas!
Esta vez os planteo una questión en la que no paro de pensar y creo que de tanto pensar no consigo la solución. Es por eso que recurro a vosotros ;)

Código (python) [Seleccionar]
l=0
for l in range(-1, 0):
try:
handle=open(var, "r")
red=handle.read()
handleold.close()
                l=l+1
asdf()
except IOError:
print("sdfghjkl")

Este script tiene como propósito intentar abrir un archivo y si lo ha podido abrir y leer que vaya a la función asdf() sino que haga un print().
El problema está en que nunca me salta un error puesto que lee todo lo que intenta. Cómo podría ir a la función "asdf()" solo si es cierto que el archivo existe?

Puede ser y seguramente será una solución muy absurda y sencilla, espero que me tenga una respuesta lo más temprano posible :)
La confianza es la base de la elegancia.

Once

Cita de: Arnau27 en 30 Septiembre 2013, 23:41 PM
Cómo podría ir a la función "asdf()" solo si es cierto que el archivo existe?

Puedes usar la libreria os para saber si el archivo existe:

Código (python) [Seleccionar]
if os.path.isfile(var):
    asdf()


Saludos!

Softrix18

Código (python) [Seleccionar]


try:
    archivo = open(MyFile, 'r')
except:
    print "Error Open File"



::)

0x5d

Cita de: Softrix18 en  1 Octubre 2013, 23:47 PM
Código (python) [Seleccionar]


try:    archivo = open(MyFile, 'r')
except:    print "Error Open File"



::)
Código (python) [Seleccionar]
try: archivo = open("archivo", 'r')
except: print "Error Open File"

::)
¡ SIGUEME EN TWITTER -> @JavierEsteban__ !

Karcrack

#4
Código (python) [Seleccionar]
for l in range(-1, 0):
   try:
       with open(var, "r") as handle:
           red = handle.read()
       l += 1
   except IOError:
       print("sdfghjkl")
   else:
       asdf()


No sé que uso le das a la variable l pero es confuso que modifiques el contador del bucle...