Jupyter notebook
やJupyter lab
で作成したipynbファイル
をMarkdown
形式に変換する3つの方法を紹介します。
Jupyter notebook/lab
で手作業でエクスポート- Anacondaのプロンプト画面から実行(
nbconvert
使用) - Pythonスクリプトで変換(
nbconvert
使用)
1.の方法では追加のインストール作業などは必要ないので手軽に変換できますが、手作業なので少し面倒です。
2.と3.の方法の場合は、nbconvert
モジュールを使用します。バッチファイル化やpythonスクリプト化ができるのでおススメです。
- Jupyter notebook/labで手動エクスポート
- nbconvertでipynbを変換する準備
- Anacondaのプロンプトから変換
- pythonスクリプトで変換
- Pythonで作業を効率化する方法
Jupyter notebook/labで手動エクスポート
手動でエクスポートする場合は、特に設定もなくポチポチするだけなので簡単です。 ただ、自動化はできないので、数回しか変換しないよという人におススメです。
Jupyter labのMarkdown変換手順
「File」->「Save and Export Notebook As…」->「Markdown」の順番でクリックします。
Jupyter NotebookのMarkdown変換手順
「File」->「Download as」->「Markdown(.md)」の順番でクリックします。
nbconvertでipynbを変換する準備
Jupyter notebook/lab
から手動で、markdown
に変換する方法は簡単ですが、自動化できないのが難点です。
nbconvert
モジュールを使用すると、Anacondaプロンプトやpythonスクリプトで変換できます。
まずは、仮想環境にnbconvert
をインストールしましょう。
Anacondaを使用している人は、Anacondaプロンプトで次のコマンドを実行してインストールしましょう。
conda install nbconvert
新しく仮想環境を作る場合には、次のコマンドで作成します。
conda create -n 仮想環境名 nbconvert
Anacondaのプロンプトから変換
Anacondaプロンプトからipynb
をmarkdown
に変換する場合は、次のコマンドを実行します。
jupyter nbconvert --to markdown XXX.ipynb
このとき、XXX.ipynb
はファイルのパスです。
これだけで、XXX.ipynb
のフォルダにXXX.md
が作成されます。
pythonスクリプトで変換
pythonスクリプトで変換する場合も、nbconvert
を使用します。
次の2ステップを踏めばOKです、
MarkdownExporter()
クラスを生成.from_filename()
メソッドで変換
次のサンプルマークダウンファイルを使って実行例を見てみましょう。
from nbconvert import MarkdownExporter
IPYNB_FILE_PATH = "xxx.ipynb"
markdown_exporter = MarkdownExporter()
md = markdown_exporter.from_filename(IPYNB_FILE_PATH)
変換されたmd
は、次の要素を持つ(タプル)
です。
md[0]
->変換後markdownの文字列
md[1]
->メタデータ
print(md[0])
# # テスト用ファイル
# ipynb -> markdownの変換確認用ファイル
# ```python
# print("Hello")
# ```
# Hello
from pprint import pprint
pprint(md[1])
# ResourcesDict(None,
# {'deprecated': <function deprecated at 0x000001F036D25C10>,
# 'global_content_filter': {'include_code': True,
# 'include_input': True,
# 'include_input_prompt': True,
# 'include_markdown': True,
# 'include_output': True,
# 'include_output_prompt': True,
# 'include_output_stdin': False,
# 'include_raw': True,
# 'include_unknown': True,
# 'no_prompt': False},
# 'metadata': ResourcesDict(None,
# {'modified_date': 'May 19, 2022',
# 'name': 'xxx',
# 'path': ''}),
# 'output_extension': '.md',
# 'outputs': {},
# 'raw_mimetypes': ['text/markdown', 'text/html', '']})
MarkdownExporter()
を生成する際に引数を設定しておくと、markdown
として出力しない内容を指定できます。
主要なところは次の表の通りです。
出力しない内容 | 仮引数名 |
---|---|
コードセル | exclude_code_cell=True |
マークダウンセル | exclude_markdown=True |
アウトプットセル | exclude_output=True |
アウトプットセルを出力しない例を見てみましょう。
markdown_exporter = MarkdownExporter(exclude_output=True)
md = markdown_exporter.from_filename(IPYNB_FILE_PATH)
print(md[0])
# # テスト用ファイル
#
# ipynb -> markdownの変換確認用ファイル
#
#
# ```python
# print("Hello")
# ```
Pythonで作業を効率化する方法
今回はipynb
をmarkdown
に変換する方法を紹介しました。
pythonを使えば、簡単なスクリプトで作業を劇的に効率化することも可能です!
pythonの効率化関係で言えば、次の記事で紹介しているような本が自動化の本がおススメです。