2012-06-25 20 views
9

Lancé un programa python con muchos bucles anidados, y el programa tomará días. Me acabo de dar cuenta de que uno de los valores de los bucles es incorrecto y hace un bucle infinito.modificar un programa python en ejecución

no quiero reiniciar el programa de cero, hay una manera de interrumpir el programa actual y modificar el rango de bucle para que funcione correctamente y también si fue atrapado con el bucle infinito para romperlo?

Muchas gracias por su ayuda.

+2

Consulte [aquí] (http://wiki.python.org/moin/DebuggingWithGdb) para obtener algunas sugerencias. – georg

Respuesta

1

Si el programa guarda su estado o sus resultados de vez en cuando, puede agregar una lógica que omita los pasos que ya se han ejecutado.

De lo contrario, no veo una manera de cambiar esto.

0

Creo que es un artículo bastante viejo, pero acabo de encontrarlo ahora. En caso de que todavía quiere probar que podría hacer lo siguiente:

Haga su script ejecuta bajo pdb como: python -m AP

Esto ejecutará bajo AP. Después de ingresar pdb solo ingrese el comando 'c' (continuar). Esto comenzará su programa.

Cuando te encuentras con un bucle infinito, simplemente haz un ctrl + c, esto detendrá el programa dentro del depurador. Ahora podría ejecutar cualquier declaración python que desee. Posiblemente también podría definir un nuevo script importarlo y ejecutar funciones desde ese script o salir.

Sé que no es una buena idea ejecutar siempre bajo depurador, pero al menos lo anterior resolvería lo que se pretendía.

Cuestiones relacionadas