nbformat package gives us the necessary tools to create a new Jupyter Notebook without having to know the specifics of the file format, JSON schema, etc.
import nbformat as nbf
Now we create a new notebook object, that we can then populate with cells, metadata, etc:
nb = nbf.v4.new_notebook()
Our simple text notebook will only have a text cell and a code cell:
text = """\ # My first automatic Jupyter Notebook This is an auto-generated notebook.""" code = """\ %pylab inline hist(normal(size=2000), bins=50);""" nb['cells'] = [nbf.v4.new_markdown_cell(text), nbf.v4.new_code_cell(code) ]
Next, we write it to a file on disk that we can then open as a new notebook.
Note: This should be as easy as:
nbf.write(nb, fname), but the current api is a little more verbose and needs a real file-like
fname = 'test.ipynb' with open(fname, 'w') as f: nbf.write(nb, f)