Foro de elhacker.net

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
  1. l=0
  2. for l in range(-1, 0):
  3. try:
  4. handle=open(var, "r")
  5. red=handle.read()
  6. handleold.close()
  7.                l=l+1
  8. asdf()
  9. except IOError:
  10. 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
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
  1. if os.path.isfile(var):
  2.    asdf()

Saludos!


Título: Re: [Python] Dilema con try
Publicado por: Softrix18 en 1 Octubre 2013, 23:47 pm
Código
  1.  
  2. try:
  3.    archivo = open(MyFile, 'r')
  4. except:
  5.    print "Error Open File"
  6.  
  7.  

 ::)


Título: Re: [Python] Dilema con try
Publicado por: 0x5d en 6 Octubre 2013, 02:16 am
Código
  1.  
  2. try:    archivo = open(MyFile, 'r')
  3. except:    print "Error Open File"
  4.  
  5.  

 ::)
Código
  1. try: archivo = open("archivo", 'r')
  2. except: print "Error Open File"
  3.  
::)


Título: Re: [Python] Dilema con try
Publicado por: Karcrack en 7 Octubre 2013, 00:58 am
Código
  1. for l in range(-1, 0):
  2.    try:
  3.        with open(var, "r") as handle:
  4.            red = handle.read()
  5.        l += 1
  6.    except IOError:
  7.        print("sdfghjkl")
  8.    else:
  9.        asdf()

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