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.py
se 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.py
de 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 -f
parece ser la forma de hacer lo que estaba buscando. ¡Gracias!save -f
es 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%%writefile
que escribe la celda actual en un archivo. Actualicé la respuesta para mencionar esto.%loadpy
(en lugar de%load
).%load
está bien, de ahora en adelante: "%loadpy
( Alias de%load
) -%loadpy
ha ganado cierta flexibilidad y ha eliminado el requisito de una.py
extensión. Por lo tanto, se ha cambiado el nombre simplemente a%load
. Puedes mirar%load
docstring para más información ".Para escribir / guardar
%%writefile myfile.py
-a
para agregar). Otro alias:%%file myfile.py
Correr
%run myfile.py
Para cargar / importar
%load myfile.py
Para 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
%%bash
comando mágico de la celda).Para ejecutar un comando unix desde la celda, simplemente preceda su comando con
!
mark. por ejemplo:!python --version
mira tu versión de python!python myfile.py
ejecute myfile.py y los resultados de salida en la celda actual, al igual que%run
(vea la diferencia entre!python
y%run
en 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 Documents
etc ... ¡Así que no es solo bash sino también cmd!!python --version
(error tipográfico)%run myfile.py
en 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.py
descrito 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"