jupyter
  • flush
  • enthought
  • nbconvert
  • 2017-09-25 228 views 0 likes 
    0

    我有一個筆記本腳本,我在不同的數據集上運行。我想在每次運行它時將腳本(包括輸出單元)保存在數據文件夾中。jupyter nbconvert不保存實際輸出

    我在我的腳本的末尾放置了以下命令,我在jupyter中運行。我打算將我在屏幕上看到的內容保存到HTML文件中。

    "here is my notebook script with inputs and ouput including graphs" 
    
    cmd='jupyter nbconvert --to html odnp_postprocessing.ipynb --output-dir '+dataFolder 
    os.system(cmd) 
    

    但是,nbconvert不會導出實際的單元格。它只會在第一次運行時不打印輸出單元,但如果重新運行,它最終會輸出輸入和輸出。但是,如果我在腳本中更改某些內容,它將始終導出第一個版本。然後,我發現的唯一方法是重新啓動內核並重新運行(兩次)修改後的新腳本。

    基本上,它看起來像nbconvert導出的某種緩衝區不是實際的輸入和用戶看到的輸出單元。

    我想要做什麼,每次運行它時,都會以編程方式將我的筆記本(輸入和輸出)保存爲HTML。

    是否有保存當前版本筆記本的命令?我試圖在nbconvert命令之前添加%筆記本,但也保存了一大堆舊輸入。

    我知道我可以在nbconvert中運行筆記本,但我想避免它,因爲我已經在jupyter中手動運行它。

    有什麼想法?

    我在Chrome瀏覽器中使用jupyter通過enthought canopy。

    謝謝

    回答

    0

    你沒有告訴我們你是如何運行nbconvert;從當前的筆記本?因此很難弄清楚事情的真相。

    Nbconvert將當前文件轉換爲磁盤上的文件;作爲一個瘋狂的猜測:你沒有保存你的文件。如果你不保存你的文件,那麼nbconvert可能無法訪問單元的輸出;和胡亂猜測時,會再次運行它第二次自動保存在踢了

    記住: - Nbconvert不執行該文件 - Nbconvert是一個單獨的進程無法訪問神奇的是什麼瀏覽器,這是潛在的不同機器。

    通常認爲它是這樣的:

    • 運行的筆記本電腦;
    • 保存筆記本
    • 關閉筆記本
    • 運行nbconvert。
    • 重新打開筆記本。

    如果您在筆記本的結尾使用此命令將其保存在另一種格式,你正在尋找那麼什麼是save hooks將觸發一些代碼 - 服務器端 - 每次保存一個筆記本。

    方便注意,瞭解如何run shell command in IPython;可以使用!在CWD中執行shell命令並進行可變插值。

    +0

    感謝您的幫助。你的猜測是正確的。我編輯了我的第一篇文章,以提供更多細節。我瞭解您提到的任務流程,但我正在尋找一種不要手動運行/保存/關閉/ nbconvert的方法。我寫了一個答案。 – Yann

    相關問題