355

*.ipynbファイルを信頼できる情報源として使用し、スケジュールされたジョブ/タスクの .py ファイルにプログラムで「コンパイル」することを検討しています。

これを行う唯一の方法は、GUI を使用することです。コマンドライン経由でそれを行う方法はありますか?

4

14 に答える 14

548

保存するたびに Python スクリプトを出力したくない場合、または IPython カーネルを再起動したくない場合:

コマンド ラインでは、次を使用できますnbconvert

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

ちょっとしたハックとして、(任意のコマンド ライン引数に使用される)前に保留することにより、IPython ノートブックで上記のコマンド呼び出すこともできます。!ノートブックの内部:

!jupyter nbconvert --to script config_template.ipynb

--to script追加される前は、オプションは--to pythonまたはでしたが、言語に依存しないノートブック システムへの移行で名前--to=python変更されました。

于 2013-11-04T23:24:57.393 に答える
25

これは、ipython を使用せずに V3 または V4 ipynb からコードを抽出するための、手早く汚い方法です。細胞の種類などはチェックしません。

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()
于 2015-06-11T09:10:20.763 に答える
20

前の例に従いますが、新しい nbformat lib versionを使用します。

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'))
于 2016-07-07T14:30:01.017 に答える
-1

マジック コマンドは、現在の%notebook foo.ipynbIPython を "foo.ipynb" にエクスポートします。

入力による詳細情報%notebook?

于 2021-06-18T02:25:18.553 に答える