LoginSignup
27
42

More than 5 years have passed since last update.

PythonでJupyterノートブック「.ipynb」を生成する

Last updated at Posted at 2017-02-06

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 適当な説明をいれてください
Program Jupyterがインストールされている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

27
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
42