Recientemente me mudé a usar notebooks IPython como parte de mi flujo de trabajo. Sin embargo, no he tenido éxito en encontrar una manera de importar archivos .py en las celdas individuales de un cuaderno abierto de IPython para que puedan editarse, ejecutarse y luego guardarse. Se puede hacer esto?
Encontré esto en la documentación que me dice cómo importar archivos .py como cuadernos nuevos, pero esto no alcanza lo que quiero lograr.
Cualquier sugerencia sería muy apreciada.
python
jupyter-notebook
ipython
jupyter
aaronsstack
fuente
fuente

Respuestas:
Se puede cargar un archivo de texto en una celda del cuaderno con el comando mágico
%load.Si ejecuta una celda que contiene:
el contenido de
filename.pyse cargará en la siguiente celda. Puede editarlo y ejecutarlo como de costumbre.Para guardar el contenido de la celda de nuevo en un archivo, agregue la magia
%%writefile filename.pyde la celda al comienzo de la celda y ejecútela. Tenga en cuenta que si ya existe un archivo con el mismo nombre , se sobrescribirá en silencio .Para ver la ayuda de cualquier comando mágico, agregue
?: like%load?o%%writefile?.Para obtener ayuda general sobre las funciones mágicas, escriba "% magic". Para obtener una lista de las funciones mágicas disponibles, use% lsmagic. Para obtener una descripción de cualquiera de ellos, escriba% magic_name ?, por ejemplo, '% cd?'.
Ver también: Funciones mágicas de los documentos oficiales de IPython.
fuente
%save -fparece ser la forma de hacer lo que estaba buscando. ¡Gracias!save -fes una forma indirecta de guardar en un archivo y funcionará solo si ejecuta la celda primero y luego proporciona la referencia correcta. En general, es más fácil de usar%%writefileque escribe la celda actual en un archivo. Actualicé la respuesta para mencionar esto.%loadpy(en lugar de%load).%loadestá bien, de ahora en adelante: "%loadpy( Alias de%load) -%loadpyha ganado cierta flexibilidad y ha eliminado el requisito de una.pyextensión. Por lo tanto, se ha cambiado el nombre simplemente a%load. Puedes mirar%loaddocstring para más información ".Para escribir / guardar
%%writefile myfile.py-apara agregar). Otro alias:%%file myfile.pyCorrer
%run myfile.pyPara cargar / importar
%load myfile.pyPara más magia y ayuda
%lsmagic%COMMAND-NAME?%run?Nota
Además de los comandos mágicos de la celda, el cuaderno IPython (ahora cuaderno Jupyter) es tan genial que te permite usar cualquier comando de Unix directamente desde la celda (esto también es equivalente a usar el
%%bashcomando mágico de la celda).Para ejecutar un comando unix desde la celda, simplemente preceda su comando con
!mark. por ejemplo:!python --versionmira tu versión de python!python myfile.pyejecute myfile.py y los resultados de salida en la celda actual, al igual que%run(vea la diferencia entre!pythony%runen los comentarios a continuación).Además, vea este nbviewer para obtener más explicaciones con ejemplos. Espero que esto ayude.
fuente
!dir Volume in drive D is Documentsetc ... ¡Así que no es solo bash sino también cmd!!python --version(error tipográfico)%run myfile.pyen lugar de!python myfile.py. Si hace lo primero, se ejecutará utilizando el kernel de ipython, incluida la precarga configurada. Un pequeño problema, pero me encontré con un error hoy en el que marcó la diferencia para mí.%run myfile.pydescrito en esta respuesta al incluir comandos mágicos de celda IPython en su script, use%run myfile.ipy.Arrastre y suelte un archivo de Python en la tabla de cuadernos "home" de los portátiles Ipython, haga clic en cargar. Esto creará un nuevo cuaderno con solo una celda que contiene el contenido del archivo .py
De lo contrario, copie / pegue desde su editor favorito;)
fuente
He encontrado satisfactorio usar ls y cd dentro del cuaderno de ipython para encontrar el archivo. Luego escriba cat your_file_name en la celda, y obtendrá el contenido del archivo, que luego puede pegar en la celda como código.
fuente
!cat "file.txt"