¿Cómo guardar la salida de una consola IPython en un archivo en Spyder?

Tengo un error en mi progtwig 🙁

El problema es ese:

  • Mi código .py es largo y demora años en ejecutarse
  • No se donde esta el bicho

La buena noticia es que tengo un montón de print() en mi archivo py , por lo que potencialmente puedo saber dónde vive el error.

La mala noticia es que mi error hace que mi computadora se bloquee , por lo que no hay forma de que mire la salida de la consola ipython y vea qué fue lo que ipython .

¿Cómo puedo hacer que la salida se escriba en el disco mientras se ejecuta el progtwig? ¿De modo que todavía pueda abrir el archivo después de reiniciar para comprender qué sucedió antes del locking?

Esta pregunta es diferente de Redirigir la salida estándar a un archivo en Python? , porque necesito

  • escritura continua en archivo
  • algo para usar desde dentro de Spyder

¡Muchas gracias!

Pregunta muy interesante! Afortunadamente, IPython tiene la magia adecuada para ti. Se llama %logstart (por favor siga el enlace para la documentación completa).

Para comenzar a usarlo y guardar la entrada y salida de todos sus comandos, simplemente escriba una consola IPython

 In[1]: %logstart -o 

y eso grabará su sesión a partir de ese momento en un archivo llamado ipython_log.py ubicado en su directorio actual.

%logstart es muy flexible, por lo que puede seleccionar un archivo diferente para guardar, y también cómo guardar su sesión (ya sea en Python puro o como comandos de IPython).