[pyar] Un print comentado me cambia el flujo del programa
Tomas Zulberti
tzulberti en gmail.com
Lun Jul 11 12:43:29 ART 2011
2011/7/11 Fernando <el.zoona en gmail.com>:
> Buenas, quiero consultar una cosita que no me cierra ni por
> casualidad. No entiendo por que pasa lo siguiente: pongamos que llamo
> mal al programa, usando -h aaaa, en ese caso el script me devuelve el
> "tryif". Ahora, si yo descomento la linea "print (opts[1])" el script
> pasa el try y va derecho al ultimo except. La cosa esta me paso
> mientras trataba de agarrar que si se mandaba un argumento sin opcion
> diera error (cosa que no hacia), pero sinceramente no entiendo por que
> una linea con un print cambia el flujo.
>
> import sys
> import getopt
>
> def usage():
> print ("lalala")
>
> def main(argv):
> try:
> opts, args = getopt.getopt(argv, "hd:", ["h", "directory:"])
> if ((args) and (opts !='-h')):
> #print (opts[1])
> print ("tryif")
> except getopt.GetoptError:
> usage()
> sys.exit(2)
> except :
> print ("errorrrrrrrrrrrr")
>
> if __name__=='__main__':
> main(sys.argv[1:])
>
> Con el print descomentado:
> [elzoona@ Desktop]$ python raro.py -h aaaa
> errorrrrrrrrrrrr
> Con el print comentado:
> [elzoona@ Desktop]$ python raro.py -h aaaa
> tryif
Seguramente lo que este pasando es que esta tirando una excepcion
cuando haces: opt[1]
Hacete un print(len(opt)), y fijate.
Si queres, tambien podes imprimir la excepcion:
except Exception, e:
print(e)
Saludos,
Tomas Zulberti
More information about the pyar
mailing list