tutorial tablas notebook insertar imagenes imagen hacer español escribir como ipython ipython-notebook

ipython - insertar - tablas en jupyter notebook



¿Cómo convierto un cuaderno de IPython en un archivo de Python a través de la línea de comandos? (8)

@ Última línea de código de Spawnrider,

fh.writelines(source.encode(''utf-8''))

da ''TypeError: write () El argumento debe ser str, no int''

fh.writelines(source)

funciona bien

Estoy buscando usar los archivos * .ipynb como fuente de verdad y "compilarlos" programáticamente en archivos .py para trabajos / tareas programados.

La única forma en que entiendo esto es a través de la GUI. ¿Hay alguna manera de hacerlo a través de la línea de comandos?


Aquí hay una manera rápida y sucia de extraer el código de V3 o V4 ipynb sin usar ipython. No verifica tipos de células, etc.

import sys,json f = open(sys.argv[1], ''r'') #input.ipynb j = json.load(f) of = open(sys.argv[2], ''w'') #output.py if j["nbformat"] >=4: for i,cell in enumerate(j["cells"]): of.write("#cell "+str(i)+"/n") for line in cell["source"]: of.write(line) of.write(''/n/n'') else: for i,cell in enumerate(j["worksheets"][0]["cells"]): of.write("#cell "+str(i)+"/n") for line in cell["input"]: of.write(line) of.write(''/n/n'') of.close()


Para convertir todos los archivos de formato * .ipynb en el directorio actual en scripts de Python recursivamente:

for i in *.ipynb **/*.ipynb; do echo "$i" jupyter nbconvert "$i" "$i" done


Puedes hacer esto desde la API de IPython.

from IPython.nbformat import current as nbformat from IPython.nbconvert import PythonExporter filepath = ''path/to/my_notebook.ipynb'' export_path = ''path/to/my_notebook.py'' with open(filepath) as fh: nb = nbformat.reads_json(fh.read()) exporter = PythonExporter() # source is a tuple of python source code # meta contains metadata source, meta = exporter.from_notebook_node(nb) with open(export_path, ''w+'') as fh: fh.writelines(source)


Si desea convertir todos los archivos *.ipynb del directorio actual al script de python, puede ejecutar el comando de la siguiente manera:

jupyter nbconvert --to script *.ipynb


Si no desea generar un script de Python cada vez que lo guarda, o si no desea reiniciar el kernel de IPython:

En la línea de comando , puede usar nbconvert :

$ jupyter nbconvert --to script [YOUR_NOTEBOOK].ipynb

¡Como un truco, incluso puedes llamar al comando anterior en un cuaderno IPython por pre-pendiente ! (utilizado para cualquier argumento de línea de comando). Dentro de un cuaderno:

!jupyter nbconvert --to script config_template.ipynb

Antes de que se added --to script , la opción era --to python o --to=python , pero se renamed en el movimiento hacia un sistema de computadora portátil independiente del idioma.


Siguiendo el ejemplo anterior pero con la nueva versión de nbformat lib :

import nbformat from nbconvert import PythonExporter def convertNotebook(notebookPath, modulePath): with open(notebookPath) as fh: nb = nbformat.reads(fh.read(), nbformat.NO_CONVERT) exporter = PythonExporter() source, meta = exporter.from_notebook_node(nb) with open(modulePath, ''w+'') as fh: fh.writelines(source.encode(''utf-8''))


Inicie el notebook con --script flag guardará el archivo .py junto con .ipynb cada vez que lo guarde. Eche un vistazo a github/ipython/nbconvert que actualmente se está fusionando con IPython, por lo que no espere que el documento sea preciso y nbconvert funcione sin necesidad de trabajar un poco. (./nbconvert <format> <file.ipynb>) al momento de escribir esto, <format> en [ python , latex, markdown, full_html, ...])

También puede (como ipynb es json), cargarlo, recorrerlo y evaluar la celda de código en el espacio de nombres actual. Encontrará ejemplos aquí y allá en Internet o wiki de IPython en github.

Esta respuesta es demasiado antigua. Vea la respuesta de @williampli a continuación.