Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Arnau27 en 30 Septiembre 2013, 23:41 PM

Título: [Python] Dilema con try
Publicado por: Arnau27 en 30 Septiembre 2013, 23:41 PM
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 :)
Título: Re: [Python] Dilema con try
Publicado por: Once en 1 Octubre 2013, 01:00 AM
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!
Título: Re: [Python] Dilema con try
Publicado por: Softrix18 en 1 Octubre 2013, 23:47 PM
Código (python) [Seleccionar]


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



::)
Título: Re: [Python] Dilema con try
Publicado por: 0x5d en 6 Octubre 2013, 02:16 AM
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"

::)
Título: Re: [Python] Dilema con try
Publicado por: Karcrack en 7 Octubre 2013, 00:58 AM
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...