JupyterノートブックをPythonから生成する方法です。

import nbformat

nb = nbformat.v4.new_notebook()

title = "# タイトル"

code = """
%matplotlib inline
from sympy import *
# to print with mathjax on jupyter notebook
init_printing()
"""

nb["cells"] = [
    nbformat.v4.new_markdown_cell(title),
    nbformat.v4.new_code_cell(code)
]

with open("output.ipynb", "w") as f:
    nbformat.write(nb, f)

これで、色々便利なことができそうですね。

PyCharmでカスタムした.ipynbを生成する

PyCharmはPythonの統合開発環境(IDE)です、非常に強力な補完機能を持っており最強のPython開発環境です。
実はPyCharmはJupyterと連携が可能で、Jupyterの表現力+PyCharmの強力な補完機能はかなり快適です。

メニュー_011.png

ただし、数式を扱う場合はPyCharmのJupyter出力は貧弱ですので、ブラウザ版のJupyterを使った方がよいでしょう。
ですので、PyCharmのJupyterは使いません、かわりにExtranal Toolsを使います。

.ipynb生成スクリプトを作る

どこか参照しやすい場所に以下のスクリプトを作成します。

#!/usr/bin/env python3
# coding:utf-8
import sys
import os
import nbformat

output_dir = sys.argv[1]
output_file = input("input ipynb name:")

nb = nbformat.v4.new_notebook()

title = "# タイトル"

code = """
%matplotlib inline
from sympy import *
init_session()
"""

nb["cells"] = [
    nbformat.v4.new_markdown_cell(title),
    nbformat.v4.new_code_cell(code)
]

if not output_file.endswith(".ipynb"):
    output_file += ".ipynb"

with open(os.path.join(output_dir, output_file), "w") as f:
    nbformat.write(nb, f)

print("ok.")

PyCharmのExternal Toolとして登録する

PyCharmの「File(F)」メニューを開き、「Settings…」を選択します。

メニュー_016.png

設定ダイアログの「Tools」→「External Tools」を選択して、「+」ボタンを押します。

Settings_017.png

設定ダイアログが出るので、以下の項目を追加します。

項目入力Name適当な名前を入れてくださいDescription適当な説明をいれてくださいProgramJupyterがインストールされているPythonパスParameters先ほどのスクリプトパス \$FileDir\$
Edit Tool_018.png

PyCharmの右クリックメニューから.ipynbが生成可能に!

PyCharmの右クリックメニューから「External Toos」→「登録したツール名」を選択します。

メニュー_019.png

コンソールにファイル名を入力すると、最初から色々入力済みの.ipynbファイルが生成されます。

python35 - [~-PycharmProjects-python35] - ...-document-document.ipynb - PyCharm Community Edition 2016.3.2_020.png

参考

https://pypi.python.org/pypi/nbformat
https://github.com/jupyter/nbformat

广告
将在 10 秒后关闭
bannerAds